Is GCC 4.8.1 C++11 complete?

Viewed 24165

OS is windows.

I'll start off by saying that I have no experience with C++, or any other compiled language. I've used CPython a bit and am familiar with that, but, until earlier today, I'd never even glanced at C++ source.

I'm trying to teach myself C++, so I've been playing around with it a bit, and one problem I'm having is the error:

error: 'to_string' was not declared in this scope

Apparently, to_string is a C++11 thing, which should be fine. I downloaded the latest MinGW, added it to my path - I have checked, and running

g++ - v

does indeed tell me that I have version 4.8.1 installed. The IDE I'm working with, Code::Blocks finds it no problem, but it simply won't use any of the C++11 stuff, giving me errors such as the one above. Things not exclusive to C++11 compile fine.

There is a section under compiler flags to "follow the C++11 language standard", which I have checked, but, even then, I get the same errors. I'm really not sure what's going on - I've looked this up, and all of the suggestions are to update either the IDE or MinGW (both of which are up to date), or to select that flag, which, as I said, is already selected.

Does anyone with more experience with C++ have any idea what might be going on?b

4 Answers

The behavior of std::string and std::list is not conforming C++11 standard. The document of libstdc++ is here [ https://gcc.gnu.org/onlinedocs/libstdc++/manual/using_dual_abi.html ] A macro named _GLIBCXX_USE_CXX11_ABI can control the behavior of them in GCC5/higher.

Besides that, C++11 std::function in GCC-4.8 is different from GCC-5 and higher version, and there is no macro can control the behavior of std::function. [ Undocumented ABI changes of std::function between GCC-4 and GCC-5/6/7/8/9, how to make a .so working with devtoolset-4/6/7/8/9? ]

The C++11 in GCC-4.8 is considered as experimental support, so do not depend on it much.

Related