$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Beman Dawes (bdawes_at_[hidden])
Date: 2003-03-18 11:11:28
At 09:48 AM 3/18/2003, David Abrahams wrote:
 >Gottfried.Ganssauge_at_[hidden] 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.
Yes, if it is ready in the next couple of hours. Please let me know when it 
is committed.
Thanks,
--Beman