+
+ for(vector<string>::const_iterator i=spec_values_in.begin(); i!=spec_values_in.end(); ++i)
+ {
+ unsigned colon = i->find(':');
+ if(colon==string::npos || colon==0 || colon+1>=i->size())
+ throw usage_error("Invalid specialization value");
+
+ string value_str = i->substr(colon+1);
+ int value;
+ if(isnumrc(value_str))
+ value = lexical_cast<int>(value_str);
+ else
+ value = lexical_cast<bool>(value_str);
+ spec_values[i->substr(0, colon)] = value;
+ }