C++
Improved experimental support for the upcoming ISO C++ standard, C++0x. Including support for auto, inline namespaces, generalized initializer lists, defaulted and deleted functions, new character types, and scoped enums.
Those errors that may be downgraded to warnings to build legacy code now mention -fpermissive when -fdiagnostics-show-option is enabled.
-Wconversion now warns if the result of a static_cast to enumeral type is unspecified because the value is outside the range of the enumeral type.
-Wuninitialized now warns if a non-static reference or non-static const member appears in a class without constructors.
G++ now properly implements value-initialization, so objects with an initializer of () and an implicitly defined default constructor will be zero-initialized before the default constructor is called.
Runtime Library (libstdc++)
Improved experimental support for the upcoming ISO C++ standard, C++0x, including:
Support for <chrono>, <condition_variable>, <cstdatomic>, <forward_list>, <initializer_list>, <mutex>, <ratio>, <system_error>, and <thread>.
unique_ptr, <algorithm> additions, exception propagation, and support for the new character types in <string> and <limits>.
Existing facilities now exploit initializer lists, defaulted and deleted functions, and the newly implemented core C++0x features.
Some standard containers are more efficient together with stateful allocators, i.e., no allocator is constructed on the fly at element construction time.
Experimental support for non-standard pointer types in containers.
The long standing libstdc++/30928 has been fixed for targets running glibc 2.10 or later.
As usual, many small and larger bug fixes, in particular quite a few corner cases in <locale>.
Partager