
David Abrahams <dave@boost-consulting.com> writes:
Well it wasn't obvious to me. Its still not. It just compiled on my comeau 4.3 without error.
I always thought that compiler was conforming. Oh well.
On Windows? That's normally in "microsoft bug emulation mode." Try http://www.comeaucomputing.com/tryitout (I did!)
I hate having to go crawling through the standard just to find this stuff, but for you, because I like you, kid, I make a special exception:
14.6.4 Dependent name resolution [temp.dep.res]
In resolving dependent names, names from the following sources are considered:
— Declarations that are visible at the point of definition of the template.
— Declarations from namespaces associated with the types of the function arguments both from the instantiation context (14.6.4.1) and from the definition context.
Unless one of the arguments has boost::serialization as an associated namespace, only the first bullet point applies in this case. It means that any overloads provided by the user after the call_serialize function definition has been seen will not be considered for overload resolution.
Have I still failed to make my point? Did you not get this message? How hard are you going to make me work for this one? -- Dave Abrahams Boost Consulting www.boost-consulting.com