]> git.tdb.fi Git - libs/gl.git/blobdiff - source/glsl/syntax.cpp
Use C++11 features with containers
[libs/gl.git] / source / glsl / syntax.cpp
index 4526bf2bd986075f6bfe50e50dae1eabf2ebd204..502c274810074c00b488711e55cae6e15ae29c7c 100644 (file)
@@ -1,3 +1,4 @@
+#include <msp/core/algorithm.h>
 #include <msp/core/maputils.h>
 #include "syntax.h"
 #include "visitor.h"
@@ -69,8 +70,8 @@ template<typename C>
 NodeContainer<C>::NodeContainer(const NodeContainer &c):
        C(c)
 {
-       for(typename C::iterator i=this->begin(); i!=this->end(); ++i)
-               *i = (*i)->clone();
+       for(auto &i: *this)
+               i = i->clone();
 }
 
 
@@ -491,10 +492,8 @@ string get_unused_variable_name(const Block &block, const string &base)
 
 int get_layout_value(const Layout &layout, const string &name, int def_value)
 {
-       for(vector<Layout::Qualifier>::const_iterator i=layout.qualifiers.begin(); i!=layout.qualifiers.end(); ++i)
-               if(i->name==name)
-                       return i->value;
-       return def_value;
+       auto i = find_member(layout.qualifiers, name, &Layout::Qualifier::name);
+       return (i!=layout.qualifiers.end() ? i->value : def_value);
 }
 
 void add_to_chain(Assignment::Target &target, Assignment::Target::ChainType type, unsigned index)