With 1.48 on 64-bit Windows 7 and gcc 4.6.0, the following code fails to
compile with -std=c++0x:
#include
int main(){}
The diagnostics are:
C:\Users\Scott\Libraries\Boost\Current/boost/lexical_cast.hpp: In member
function 'bool boost::detail::lexical_stream_limited_src::shl_float(float, wchar_t*)':
C:\Users\Scott\Libraries\Boost\Current/boost/lexical_cast.hpp:1210:120:
error: there are no arguments to 'swprintf' that depend on a
template parameter, so a declaration of 'swprintf' must be available
[-fpermissive]
C:\Users\Scott\Libraries\Boost\Current/boost/lexical_cast.hpp:1210:120:
note: (if you use '-fpermissive', G++ will accept your code,
but allowing the use of an undeclared name is deprecated)
C:\Users\Scott\Libraries\Boost\Current/boost/lexical_cast.hpp: In member
function 'bool boost::detail::lexical_stream_limited_src::shl_double(double, wchar_t*)':
C:\Users\Scott\Libraries\Boost\Current/boost/lexical_cast.hpp:1231:122:
error: there are no arguments to 'swprintf' that depend on a
template parameter, so a declaration of 'swprintf' must be available
[-fpermissive]
The code compiles fine without -std=c++0x. I don't recall having this
problem with earlier releases.
Pilot error or library implementation problem?
Thanks,
Scott