
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