Boost logo

Boost Users :

Subject: Re: [Boost-users] [lexical_cast] Compilation issues with gcc 4.6 -std=c++0x
From: Nathan Ridge (zeratul976_at_[hidden])
Date: 2011-11-15 21:54:38


> With 1.48 on 64-bit Windows 7 and gcc 4.6.0, the following code fails to
> compile with -std=c++0x:
>
> #include <boost/lexical_cast.hpp>
> int main(){}
>
> The diagnostics are:
>
> <snip>
 
Try compiling with -std=gnu++0x
 
GCC's -std flag is a little confusing:
 * no -std flag means "C++98 with GNU extensions"
 * -std=c++98 means "C++98 with no GNU extensions"
 * -std=c++0x means "C++0x with no GNU extensions"
 * -std=gnu++0x means "C++0x with GNU extensions"
 
So, if before you were compiling with no -std flag, and now
you are compiling with -std=c++0x, then in addition to
enabling C++0x features, you are disabling GNU extensions,
which I'm guessing wasn't your intention.
 
Now admittedly, Boost should work in the absence of GNU
extensions, so there *is* a bug in either Boost or MinGW
behind the scenes, but you have a workaround for now.
 
Regards,
Nate


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