Index: test/std/thread/futures/futures.overview/future_errc.pass.cpp =================================================================== --- test/std/thread/futures/futures.overview/future_errc.pass.cpp +++ test/std/thread/futures/futures.overview/future_errc.pass.cpp @@ -13,18 +13,25 @@ // enum class future_errc // { -// future_already_retrieved = 1, -// promise_already_satisfied, -// no_state -// broken_promise, +// broken_promise = implementation-defined, +// future_already_retrieved = implementation-defined, +// promise_already_satisfied = implementation-defined, +// no_state = implementation-defined // }; #include int main() { - static_assert(static_cast(std::future_errc::future_already_retrieved) == 1, ""); - static_assert(static_cast(std::future_errc::promise_already_satisfied) == 2, ""); - static_assert(static_cast(std::future_errc::no_state) == 3, ""); - static_assert(static_cast(std::future_errc::broken_promise) == 4, ""); + static_assert(std::future_errc::broken_promise != std::future_errc::future_already_retrieved, ""); + static_assert(std::future_errc::broken_promise != std::future_errc::promise_already_satisfied, ""); + static_assert(std::future_errc::broken_promise != std::future_errc::no_state, ""); + static_assert(std::future_errc::future_already_retrieved != std::future_errc::promise_already_satisfied, ""); + static_assert(std::future_errc::future_already_retrieved != std::future_errc::no_state, ""); + static_assert(std::future_errc::promise_already_satisfied != std::future_errc::no_state, ""); + + static_assert(std::future_errc::broken_promise != static_cast(0), ""); + static_assert(std::future_errc::future_already_retrieved != static_cast(0), ""); + static_assert(std::future_errc::promise_already_satisfied != static_cast(0), ""); + static_assert(std::future_errc::no_state != static_cast(0), ""); } Index: test/std/thread/futures/futures.overview/launch.pass.cpp =================================================================== --- test/std/thread/futures/futures.overview/launch.pass.cpp +++ test/std/thread/futures/futures.overview/launch.pass.cpp @@ -32,7 +32,7 @@ LIBCPP_STATIC_ASSERT(std::launch::any == (std::launch::async | std::launch::deferred), ""); static_assert(std::launch(0) == (std::launch::async & std::launch::deferred), ""); LIBCPP_STATIC_ASSERT(std::launch::any == (std::launch::async ^ std::launch::deferred), ""); - static_assert(std::launch::deferred == ~std::launch::async, ""); + LIBCPP_STATIC_ASSERT(std::launch::deferred == ~std::launch::async, ""); std::launch x = std::launch::async; x &= std::launch::deferred; assert(x == std::launch(0));