$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: John Maddock (john_at_[hidden])
Date: 2005-01-02 10:34:18
>> I added the two following #defines to the C++ Preprocessor preference 
>> panel:
>>
>> #define BOOST_NO_STD_USE_FACET
>> #define BOOST_HAS_TWO_ARG_USE_FACET
>>
>> and it compiled.
>>
>> Is this the right fix?
Yes that's the right fix.
> #ifndef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
> I.e. If _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG is not defined, you get the 
> standard use_facet signature.  And _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG is 
> not defined by default.  Indeed this flag is something of a relic and 
> hasn't been used (by Metrowerks) for several years.  Is there a reason 
> that you have defined it?  And if so, could you simply not define it, and 
> solve your problem that way?
>
> Oh! <slapping forehead>  I just reviewed our sources with respect to this 
> flag.  If you choose "ms-compatible mangling", and I think that means VC++ 
> 6.0 compatible, then _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG gets turned on 
> automatically.  The early MS mangling scheme simply does not support 
> explicit template arguments for functions.  Do you really need this 
> feature?  If so, continue pursuing the boost-end fix.  Otherwise, I 
> recommend turning it off and going standard.
Thanks Howard, I'm adding:
#ifdef _MSL_NO_EXPLICIT_FUNC_TEMPLATE_ARG
# define BOOST_NO_STD_USE_FACET
# define BOOST_HAS_TWO_ARG_USE_FACET
#endif
To msl.hpp as a fix for this.
<shameless hint> Of course what we really need is someone to volunteer to 
run the tests on the Mac with CW regularly </shameless hint> ! ;-)
John.