Boost logo

Boost :

From: Joaquín Mª López Muñoz (joaquin_at_[hidden])
Date: 2007-11-26 05:08:50


Alexander Nasonov ha escrito:

> Joaquín Mª López Muñoz <joaquin <at> tid.es> writes:
> > Hello, the aforementioned revision adds a new Traits template parameter to
> > boost::detail::lexical_stream, but it fails to accordingly upgrade the usage
> of
> > lexical_stream at line 1183:
> >
> > template<typename Target, typename Source>
> > Target lexical_cast(Source arg)
> > {
> > detail::lexical_stream<Target, Source> interpreter;
> > Target result;
> > ...
>
> The comment above this function says:
> //call-by-value fallback version (deprecated)
>
> This branch is only for compilers with BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION
> defined. There is no support for non-standard traits for such compilers.

Hello Alexander, thanks for your quick response,

The problem with rev 41387 is *not* that non-standard traits aren't supported
for legacy compilers, but that lexical_cast is simply broken for such compilers,
any code that used to use lexical_cast won't compile now , it's not about new
features in boost::lexical_cast. Most notably, Boost.Test uses lexical_cast internally,
so any lib that uses Boost.Test with a legacy compiler is now broken (this is
actually my case.)

Unless you want to ban every usage of lexical_cast in MSVC++ 6.0/7.0 and
compilers without PTS, wouldn't be possible to provide some standard
traits class in the usage of lexical_stream at line 1183 so as to not break
legacy code?

Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk