
If you can post your full implementation, I'll run it through GCC and see
if the error persists, or if there's a nicer way to fix it.
For starters, the program you gave me doesn't compile in GCC - actually, it probably shouldn't compile at all. Some of your functions in Test_union_different_iterator are defined over type parameters when they need to be defined over template template parameters. See attached for fixes. The good news is that GCC will generate the same compiler error. I /think/ the problem is related to the fact that variant actually defines operator== as a member function. This seems to cause the compiler to "prefer" a member operator!=, which variant does not define. Maybe the overload you gave is somehow incompatible with that. One of my students reported a similar issue on a different project. Best bet: stick with the solution you have. Andrew Sutton andrew.n.sutton@gmail.com