[EMAIL PROTECTED] writes: >> it seems to me that these aren't actually legal specializations >> (though I've never specialized functions before so I could be wrong). >> Shouldn't that be: >> >> template <> >> inline type_info type_id<Pointee>(boost::type<Pointee>*) { >> return type_info(typeid(Pointee*)); >> } >> >> template <> >> inline type_info type_id<const volatile Pointee&>( >> boost::type<const volatile Pointee&>*) { >> return type_info(typeid(Pointee*)); >> } >> > You're probably right, but the other compilers didn't > complain... Anyway, that wasn't the cause of the problem; the > problem seems to be that gcc-2.9x doesn't recognize the defaulted > argument but insists on having an argument anyway. Now i have > changed my specializations such that these have *no* arguments and > now it works on all my compilers (MSVC6, VC7.1ß, gcc-2.95.3, > gcc-3.2).
I think we need to keep the argument for VC6 at least; the problem is one that shows up at link time because VC6 seems to distinguish function template instantiations only by the types of the arguments and not the template parameters. If you amend the patch so that it still uses the default argument for VC6, I will be happy for Ralf to apply it. Beman, can we get this in under the wire? It only affects Boost.Python and then only a new feature of Boost.Python. -- Dave Abrahams Boost Consulting www.boost-consulting.com _______________________________________________ Unsubscribe & other changes: http://lists.boost.org/mailman/listinfo.cgi/boost