Baruch Even <[EMAIL PROTECTED]> writes:
| This two parse problems are the culprit in my opinion the rest just stem
| from them.
Agree.
| The code in question for this two is similar I'll show one part of it:
|
| Map::const_iterator it =
| std::find_if(map.begin(), map.end(),
| equal_2nd_in_pair<T1, T2>(second)
| );
[snipp]
| Map is a type I define later on in a private portion of the template.
| map is a variable of type Map, defined in that private portion.
I belive this is the problem. If we follow the standard your code is
correct, however some compilers fail to understand that a typedef is a
typedef and should be searched for in the complete class and not just
in the portion that precedes its use.
I have moved the typedefs to the beginning of the class.
| std::find_if is a standard algorithm provided in STL.
| equal_2nd_in_pair is my own home-brew functor.
|
| Please help me with it, I have no idea how to go on with this, and I don't
| have this problem on my compiler so I can't just experiment it away.
Still it is strange that Allan has these problems, when I am not using
gcc 2.96 (cvs version), I am using gcc 2.95.2 witout problem. It
compiles your code just fine.
Lgb