http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50365
--- Comment #3 from Jonathan Wakely <redi at gcc dot gnu.org> 2011-09-12 14:26:33 UTC --- reduced template<class CHAR=char> class CDSString { public: CDSString(const CHAR* s="", int len=-1, const int blockSize=8); CDSString(const CDSString&); bool matches(const CHAR* str, bool ignoreCase=0) const; }; template<class CHAR> inline bool operator==(const CDSString<CHAR>& s1,const CHAR* s2) {return s1.matches(s2);} typedef CDSString<char> String; struct XplorVars { const char* const aner; }; class XplorSimulation { public: XplorSimulation(bool clone=0); XplorVars* xplorVars(); int scriptingIndex_; }; XplorSimulation::XplorSimulation(bool clone) { int i = 0; if ( String(xplorVars()->aner+i*4,4) == "SCRI" ) scriptingIndex_ = i; }