diff --git a/include/__mutex_base b/include/__mutex_base index d4023a64f..abb1c1258 100644 --- a/include/__mutex_base +++ b/include/__mutex_base @@ -254,19 +254,13 @@ void swap(unique_lock<_Mutex>& __x, unique_lock<_Mutex>& __y) _NOEXCEPT {__x.swap(__y);} -struct _LIBCPP_TYPE_VIS cv_status +//enum class cv_status +_LIBCPP_DECLARE_STRONG_ENUM(cv_status) { - enum __lx { - no_timeout, - timeout - }; - - __lx __v_; - - _LIBCPP_INLINE_VISIBILITY cv_status(__lx __v) : __v_(__v) {} - _LIBCPP_INLINE_VISIBILITY operator int() const {return __v_;} - + no_timeout, + timeout }; +_LIBCPP_DECLARE_STRONG_ENUM_EPILOG(cv_status) class _LIBCPP_TYPE_VIS condition_variable { diff --git a/test/thread/thread.condition/cv_status.pass.cpp b/test/thread/thread.condition/cv_status.pass.cpp index d89765765..d5e094766 100644 --- a/test/thread/thread.condition/cv_status.pass.cpp +++ b/test/thread/thread.condition/cv_status.pass.cpp @@ -16,6 +16,6 @@ int main() { - assert(std::cv_status::no_timeout == 0); - assert(std::cv_status::timeout == 1); + assert(static_cast(std::cv_status::no_timeout) == 0); + assert(static_cast(std::cv_status::timeout) == 1); }