I have some code given to me by another person in which we have a structure
struct Pair {
string s1;
string s2;
bool equivalent;
};
Then he sets up a vector of these structs hard coded
std::vector<Pair> PairID;
staticdata() {
PairID={{"string","string2",true},
{"string","string3",true},
{"string","string4",false},
{"string","string7",false},
{"string3","string8",false}
};
}
Unfortunately my compiler is complaining on the line PairID={{“string”,”string2″,true},
Why is this? He suggested to compile using -std=c++0x but my compiler (gcc 4.2) does not support this. Is there an easy way to convert the code so it works? Why is it failing??
I am using Mac OSX and would prefer not to update my compiler
Your code is not legal C++. It is legal C++0x but there have been many changes to the language. So if you want to compile this code as C++ code, you’ll need to change it.
PigBen’s solution is one way, the problem with it being the temporary data could be constructed & destroyed many times, or live for a long time.
Here’s another way: