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

Reply via email to