Boost logo

Boost Users :

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.


Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net