+#include <msp/core/algorithm.h>
#include <msp/core/maputils.h>
#include "syntax.h"
#include "visitor.h"
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();
}
BasicTypeDeclaration::BasicTypeDeclaration():
kind(ALIAS),
size(0),
+ sign(true),
base_type(0)
{ }
TypeDeclaration(other),
kind(other.kind),
size(other.size),
+ sign(other.sign),
base(other.base),
base_type(0)
{ }
const char *Stage::get_stage_name(Type type)
{
- static const char *names[] = { "shared", "vertex", "geometry", "fragment" };
+ static const char *const names[] = { "shared", "vertex", "geometry", "fragment" };
return names[type];
}
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)