diff --git a/libcxx/include/system_error b/libcxx/include/system_error index ac3fb4474d7c..df668cc64c64 100644 --- a/libcxx/include/system_error +++ b/libcxx/include/system_error @@ -22,6 +22,7 @@ class error_category public: virtual ~error_category() noexcept; + constexpr error_category(); error_category(const error_category&) = delete; error_category& operator=(const error_category&) = delete; @@ -366,7 +367,11 @@ class _LIBCPP_TYPE_VIS error_category public: virtual ~error_category() _NOEXCEPT; +#ifdef _LIBCPP_BUILDING_SYSTEM_ERROR error_category() _NOEXCEPT; +#else + _LIBCPP_ALWAYS_INLINE _LIBCPP_CONSTEXPR_AFTER_CXX11 error_category() _NOEXCEPT {} +#endif private: error_category(const error_category&);// = delete; error_category& operator=(const error_category&);// = delete; diff --git a/libcxx/src/system_error.cpp b/libcxx/src/system_error.cpp index 7376b770ecf8..b40409f854ab 100644 --- a/libcxx/src/system_error.cpp +++ b/libcxx/src/system_error.cpp @@ -7,6 +7,7 @@ // //===----------------------------------------------------------------------===// +#define _LIBCPP_BUILDING_SYSTEM_ERROR #include "system_error" #include "string" #include "cstring" diff --git a/libcxx/www/cxx1y_status.html b/libcxx/www/cxx1y_status.html index 89f0efe28e0d..99c8035720e8 100644 --- a/libcxx/www/cxx1y_status.html +++ b/libcxx/www/cxx1y_status.html @@ -143,7 +143,7 @@ 2094duration conversion overflow shouldn't participate in overload resolutionBristol 2122merge() stability for lists versus forward listsBristol 2128Absence of global functions cbegin/cendBristol - 2145error_category default constructorBristol + 2145error_category default constructorBristolComplete 2147Unclear hint type in Allocator's allocate functionBristol 2148Hashing enums should be supported directly by std::hashBristol 2149Concerns about 20.8/5Bristol