diff options
author | Jonathan Wakely <jwakely.gcc@gmail.com> | 2013-05-18 23:11:48 +0000 |
---|---|---|
committer | Jonathan Wakely <redi@gcc.gnu.org> | 2013-05-19 00:11:48 +0100 |
commit | f891e5d1965935e12d500c86df44f1e30b493137 (patch) | |
tree | 03d2d45177496af130cabec5c190cef3f422ae48 | |
parent | f92126ba396890f7ae874efee40d8413bf826090 (diff) | |
download | gcc-f891e5d1965935e12d500c86df44f1e30b493137.zip gcc-f891e5d1965935e12d500c86df44f1e30b493137.tar.gz gcc-f891e5d1965935e12d500c86df44f1e30b493137.tar.bz2 |
system_error (error_category::error_category()): LWG 2145: Declare public and constexpr.
* include/std/system_error (error_category::error_category()): LWG
2145: Declare public and constexpr.
* src/c++11/system_error.cc (error_category::error_category()): Move
definition to ...
* src/c++11/compatibility-c++0x.cc: Here.
From-SVN: r199071
-rw-r--r-- | libstdc++-v3/ChangeLog | 8 | ||||
-rw-r--r-- | libstdc++-v3/include/std/system_error | 9 | ||||
-rw-r--r-- | libstdc++-v3/src/c++11/compatibility-c++0x.cc | 4 | ||||
-rw-r--r-- | libstdc++-v3/src/c++11/system_error.cc | 2 |
4 files changed, 18 insertions, 5 deletions
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog index 1c871c0..a59c5d6 100644 --- a/libstdc++-v3/ChangeLog +++ b/libstdc++-v3/ChangeLog @@ -1,5 +1,13 @@ 2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com> + * include/std/system_error (error_category::error_category()): LWG + 2145: Declare public and constexpr. + * src/c++11/system_error.cc (error_category::error_category()): Move + definition to ... + * src/c++11/compatibility-c++0x.cc: Here. + +2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com> + * include/std/typeindex (type_index::name()): LWG 2144: Add noexcept. 2013-05-18 Jonathan Wakely <jwakely.gcc@gmail.com> diff --git a/libstdc++-v3/include/std/system_error b/libstdc++-v3/include/std/system_error index b63b74e..d66b871 100644 --- a/libstdc++-v3/include/std/system_error +++ b/libstdc++-v3/include/std/system_error @@ -65,11 +65,14 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION /// error_category class error_category { - protected: + public: +#ifdef _GLIBCXX_COMPATIBILITY_CXX0X error_category() noexcept; +#else + constexpr error_category() noexcept = default; +#endif - public: - virtual ~error_category() noexcept; + virtual ~error_category(); error_category(const error_category&) = delete; error_category& operator=(const error_category&) = delete; diff --git a/libstdc++-v3/src/c++11/compatibility-c++0x.cc b/libstdc++-v3/src/c++11/compatibility-c++0x.cc index fc84a5e..64a4a6c 100644 --- a/libstdc++-v3/src/c++11/compatibility-c++0x.cc +++ b/libstdc++-v3/src/c++11/compatibility-c++0x.cc @@ -119,6 +119,10 @@ namespace std _GLIBCXX_VISIBILITY(default) }; constexpr bool system_clock::is_monotonic; } // namespace chrono + + // gcc-4.9.0 + // LWG 2145 changes this constructor to constexpr i.e. inline + error_category::error_category() noexcept = default; } #endif diff --git a/libstdc++-v3/src/c++11/system_error.cc b/libstdc++-v3/src/c++11/system_error.cc index 453c687..65dcef3 100644 --- a/libstdc++-v3/src/c++11/system_error.cc +++ b/libstdc++-v3/src/c++11/system_error.cc @@ -70,8 +70,6 @@ namespace std _GLIBCXX_VISIBILITY(default) { _GLIBCXX_BEGIN_NAMESPACE_VERSION - error_category::error_category() noexcept = default; - error_category::~error_category() noexcept = default; const error_category& |