------- Comment #12 from igodard at pacbell dot net 2006-04-20 09:28 ------- I don't think that the problem is in the STL. The STL can be as tricky as it wants, including use of operator,(). It should not be possible for the actual operator,()s I declared to hijack the STL the way that happened, because 1) my declarations were out of scope for the STL code and 2) their signatures did not match the STL call site. This suggests a compiler bug to me, not an STL mis-design.
A bug for this operator is not unlikely, because operator,() has unusual semantics that would force non-standard handling within the compiler, and the special code for it is probably not exercised as well as the main operator invocation path. It certinly looks to me like a template that uses operator,() that is defined before a second declaration of that operator but instantiated after the second declaration is seeing the second dec when parsing the body of the instantiation Ivan -- http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26974