forked from OSchip/llvm-project
Cleanup _LIBCPP_HAS_NO_<c++11-feature> macros in thread.
llvm-svn: 300622
This commit is contained in:
parent
88c64f324f
commit
e11fb13b60
|
@ -34,7 +34,7 @@ _LIBCPP_BEGIN_NAMESPACE_STD
|
||||||
|
|
||||||
class _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(capability("mutex")) mutex
|
class _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(capability("mutex")) mutex
|
||||||
{
|
{
|
||||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
__libcpp_mutex_t __m_ = _LIBCPP_MUTEX_INITIALIZER;
|
__libcpp_mutex_t __m_ = _LIBCPP_MUTEX_INITIALIZER;
|
||||||
#else
|
#else
|
||||||
__libcpp_mutex_t __m_;
|
__libcpp_mutex_t __m_;
|
||||||
|
@ -42,7 +42,7 @@ class _LIBCPP_TYPE_VIS _LIBCPP_THREAD_SAFETY_ANNOTATION(capability("mutex")) mut
|
||||||
|
|
||||||
public:
|
public:
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
constexpr mutex() _NOEXCEPT = default;
|
constexpr mutex() _NOEXCEPT = default;
|
||||||
#else
|
#else
|
||||||
mutex() _NOEXCEPT {__m_ = (__libcpp_mutex_t)_LIBCPP_MUTEX_INITIALIZER;}
|
mutex() _NOEXCEPT {__m_ = (__libcpp_mutex_t)_LIBCPP_MUTEX_INITIALIZER;}
|
||||||
|
@ -66,7 +66,7 @@ struct _LIBCPP_TYPE_VIS defer_lock_t {};
|
||||||
struct _LIBCPP_TYPE_VIS try_to_lock_t {};
|
struct _LIBCPP_TYPE_VIS try_to_lock_t {};
|
||||||
struct _LIBCPP_TYPE_VIS adopt_lock_t {};
|
struct _LIBCPP_TYPE_VIS adopt_lock_t {};
|
||||||
|
|
||||||
#if defined(_LIBCPP_HAS_NO_CONSTEXPR) || defined(_LIBCPP_BUILDING_MUTEX)
|
#if defined(_LIBCPP_CXX03_LANG) || defined(_LIBCPP_BUILDING_MUTEX)
|
||||||
|
|
||||||
extern const defer_lock_t defer_lock;
|
extern const defer_lock_t defer_lock;
|
||||||
extern const try_to_lock_t try_to_lock;
|
extern const try_to_lock_t try_to_lock;
|
||||||
|
@ -150,7 +150,7 @@ private:
|
||||||
unique_lock& operator=(unique_lock const&); // = delete;
|
unique_lock& operator=(unique_lock const&); // = delete;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
unique_lock(unique_lock&& __u) _NOEXCEPT
|
unique_lock(unique_lock&& __u) _NOEXCEPT
|
||||||
: __m_(__u.__m_), __owns_(__u.__owns_)
|
: __m_(__u.__m_), __owns_(__u.__owns_)
|
||||||
|
@ -167,7 +167,7 @@ public:
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
void lock();
|
void lock();
|
||||||
bool try_lock();
|
bool try_lock();
|
||||||
|
@ -279,7 +279,7 @@ _LIBCPP_DECLARE_STRONG_ENUM_EPILOG(cv_status)
|
||||||
|
|
||||||
class _LIBCPP_TYPE_VIS condition_variable
|
class _LIBCPP_TYPE_VIS condition_variable
|
||||||
{
|
{
|
||||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
__libcpp_condvar_t __cv_ = _LIBCPP_CONDVAR_INITIALIZER;
|
__libcpp_condvar_t __cv_ = _LIBCPP_CONDVAR_INITIALIZER;
|
||||||
#else
|
#else
|
||||||
__libcpp_condvar_t __cv_;
|
__libcpp_condvar_t __cv_;
|
||||||
|
@ -287,7 +287,7 @@ class _LIBCPP_TYPE_VIS condition_variable
|
||||||
|
|
||||||
public:
|
public:
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
constexpr condition_variable() _NOEXCEPT = default;
|
constexpr condition_variable() _NOEXCEPT = default;
|
||||||
#else
|
#else
|
||||||
condition_variable() _NOEXCEPT {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;}
|
condition_variable() _NOEXCEPT {__cv_ = (__libcpp_condvar_t)_LIBCPP_CONDVAR_INITIALIZER;}
|
||||||
|
|
|
@ -191,7 +191,7 @@ template<class Callable, class ...Args>
|
||||||
#include <__mutex_base>
|
#include <__mutex_base>
|
||||||
#include <functional>
|
#include <functional>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
#endif
|
#endif
|
||||||
#include <__threading_support>
|
#include <__threading_support>
|
||||||
|
@ -343,7 +343,7 @@ try_lock(_L0& __l0, _L1& __l1)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template <class _L0, class _L1, class _L2, class... _L3>
|
template <class _L0, class _L1, class _L2, class... _L3>
|
||||||
int
|
int
|
||||||
|
@ -362,7 +362,7 @@ try_lock(_L0& __l0, _L1& __l1, _L2& __l2, _L3&... __l3)
|
||||||
return __r;
|
return __r;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template <class _L0, class _L1>
|
template <class _L0, class _L1>
|
||||||
void
|
void
|
||||||
|
@ -391,7 +391,7 @@ lock(_L0& __l0, _L1& __l1)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template <class _L0, class _L1, class _L2, class ..._L3>
|
template <class _L0, class _L1, class _L2, class ..._L3>
|
||||||
void
|
void
|
||||||
|
@ -466,7 +466,7 @@ void __unlock(_L0& __l0, _L1& __l1, _L2& __l2, _L3&... __l3) {
|
||||||
_VSTD::__unlock(__l2, __l3...);
|
_VSTD::__unlock(__l2, __l3...);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
#if _LIBCPP_STD_VER > 14
|
#if _LIBCPP_STD_VER > 14
|
||||||
template <class ..._Mutexes>
|
template <class ..._Mutexes>
|
||||||
|
@ -550,13 +550,13 @@ private:
|
||||||
|
|
||||||
struct _LIBCPP_TEMPLATE_VIS once_flag;
|
struct _LIBCPP_TEMPLATE_VIS once_flag;
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template<class _Callable, class... _Args>
|
template<class _Callable, class... _Args>
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
void call_once(once_flag&, _Callable&&, _Args&&...);
|
void call_once(once_flag&, _Callable&&, _Args&&...);
|
||||||
|
|
||||||
#else // _LIBCPP_HAS_NO_VARIADICS
|
#else // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template<class _Callable>
|
template<class _Callable>
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
|
@ -566,7 +566,7 @@ template<class _Callable>
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
void call_once(once_flag&, const _Callable&);
|
void call_once(once_flag&, const _Callable&);
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
struct _LIBCPP_TEMPLATE_VIS once_flag
|
struct _LIBCPP_TEMPLATE_VIS once_flag
|
||||||
{
|
{
|
||||||
|
@ -580,11 +580,11 @@ private:
|
||||||
|
|
||||||
unsigned long __state_;
|
unsigned long __state_;
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
template<class _Callable, class... _Args>
|
template<class _Callable, class... _Args>
|
||||||
friend
|
friend
|
||||||
void call_once(once_flag&, _Callable&&, _Args&&...);
|
void call_once(once_flag&, _Callable&&, _Args&&...);
|
||||||
#else // _LIBCPP_HAS_NO_VARIADICS
|
#else // _LIBCPP_CXX03_LANG
|
||||||
template<class _Callable>
|
template<class _Callable>
|
||||||
friend
|
friend
|
||||||
void call_once(once_flag&, _Callable&);
|
void call_once(once_flag&, _Callable&);
|
||||||
|
@ -592,10 +592,10 @@ private:
|
||||||
template<class _Callable>
|
template<class _Callable>
|
||||||
friend
|
friend
|
||||||
void call_once(once_flag&, const _Callable&);
|
void call_once(once_flag&, const _Callable&);
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template <class _Fp>
|
template <class _Fp>
|
||||||
class __call_once_param
|
class __call_once_param
|
||||||
|
@ -650,7 +650,7 @@ __call_once_proxy(void* __vp)
|
||||||
|
|
||||||
_LIBCPP_FUNC_VIS void __call_once(volatile unsigned long&, void*, void(*)(void*));
|
_LIBCPP_FUNC_VIS void __call_once(volatile unsigned long&, void*, void(*)(void*));
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template<class _Callable, class... _Args>
|
template<class _Callable, class... _Args>
|
||||||
inline _LIBCPP_INLINE_VISIBILITY
|
inline _LIBCPP_INLINE_VISIBILITY
|
||||||
|
@ -666,7 +666,7 @@ call_once(once_flag& __flag, _Callable&& __func, _Args&&... __args)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#else // _LIBCPP_HAS_NO_VARIADICS
|
#else // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template<class _Callable>
|
template<class _Callable>
|
||||||
inline _LIBCPP_INLINE_VISIBILITY
|
inline _LIBCPP_INLINE_VISIBILITY
|
||||||
|
@ -692,7 +692,7 @@ call_once(once_flag& __flag, const _Callable& __func)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
_LIBCPP_END_NAMESPACE_STD
|
_LIBCPP_END_NAMESPACE_STD
|
||||||
|
|
||||||
|
|
|
@ -95,7 +95,7 @@ void sleep_for(const chrono::duration<Rep, Period>& rel_time);
|
||||||
#include <system_error>
|
#include <system_error>
|
||||||
#include <chrono>
|
#include <chrono>
|
||||||
#include <__mutex_base>
|
#include <__mutex_base>
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
#include <tuple>
|
#include <tuple>
|
||||||
#endif
|
#endif
|
||||||
#include <__threading_support>
|
#include <__threading_support>
|
||||||
|
@ -291,7 +291,7 @@ public:
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
thread() _NOEXCEPT : __t_(_LIBCPP_NULL_THREAD) {}
|
thread() _NOEXCEPT : __t_(_LIBCPP_NULL_THREAD) {}
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
template <class _Fp, class ..._Args,
|
template <class _Fp, class ..._Args,
|
||||||
class = typename enable_if
|
class = typename enable_if
|
||||||
<
|
<
|
||||||
|
@ -300,19 +300,19 @@ public:
|
||||||
>
|
>
|
||||||
_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS
|
_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS
|
||||||
explicit thread(_Fp&& __f, _Args&&... __args);
|
explicit thread(_Fp&& __f, _Args&&... __args);
|
||||||
#else // _LIBCPP_HAS_NO_VARIADICS
|
#else // _LIBCPP_CXX03_LANG
|
||||||
template <class _Fp>
|
template <class _Fp>
|
||||||
_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS
|
_LIBCPP_METHOD_TEMPLATE_IMPLICIT_INSTANTIATION_VIS
|
||||||
explicit thread(_Fp __f);
|
explicit thread(_Fp __f);
|
||||||
#endif
|
#endif
|
||||||
~thread();
|
~thread();
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
thread(thread&& __t) _NOEXCEPT : __t_(__t.__t_) {__t.__t_ = _LIBCPP_NULL_THREAD;}
|
thread(thread&& __t) _NOEXCEPT : __t_(__t.__t_) {__t.__t_ = _LIBCPP_NULL_THREAD;}
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
thread& operator=(thread&& __t) _NOEXCEPT;
|
thread& operator=(thread&& __t) _NOEXCEPT;
|
||||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
_LIBCPP_INLINE_VISIBILITY
|
_LIBCPP_INLINE_VISIBILITY
|
||||||
void swap(thread& __t) _NOEXCEPT {_VSTD::swap(__t_, __t.__t_);}
|
void swap(thread& __t) _NOEXCEPT {_VSTD::swap(__t_, __t.__t_);}
|
||||||
|
@ -329,7 +329,7 @@ public:
|
||||||
static unsigned hardware_concurrency() _NOEXCEPT;
|
static unsigned hardware_concurrency() _NOEXCEPT;
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#ifndef _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template <class _TSp, class _Fp, class ..._Args, size_t ..._Indices>
|
template <class _TSp, class _Fp, class ..._Args, size_t ..._Indices>
|
||||||
inline _LIBCPP_INLINE_VISIBILITY
|
inline _LIBCPP_INLINE_VISIBILITY
|
||||||
|
@ -369,7 +369,18 @@ thread::thread(_Fp&& __f, _Args&&... __args)
|
||||||
__throw_system_error(__ec, "thread constructor failed");
|
__throw_system_error(__ec, "thread constructor failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
#else // _LIBCPP_HAS_NO_VARIADICS
|
inline
|
||||||
|
thread&
|
||||||
|
thread::operator=(thread&& __t) _NOEXCEPT
|
||||||
|
{
|
||||||
|
if (!__libcpp_thread_isnull(&__t_))
|
||||||
|
terminate();
|
||||||
|
__t_ = __t.__t_;
|
||||||
|
__t.__t_ = _LIBCPP_NULL_THREAD;
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
|
#else // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
template <class _Fp>
|
template <class _Fp>
|
||||||
struct __thread_invoke_pair {
|
struct __thread_invoke_pair {
|
||||||
|
@ -404,22 +415,7 @@ thread::thread(_Fp __f)
|
||||||
__throw_system_error(__ec, "thread constructor failed");
|
__throw_system_error(__ec, "thread constructor failed");
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // _LIBCPP_CXX03_LANG
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
||||||
|
|
||||||
inline
|
|
||||||
thread&
|
|
||||||
thread::operator=(thread&& __t) _NOEXCEPT
|
|
||||||
{
|
|
||||||
if (!__libcpp_thread_isnull(&__t_))
|
|
||||||
terminate();
|
|
||||||
__t_ = __t.__t_;
|
|
||||||
__t.__t_ = _LIBCPP_NULL_THREAD;
|
|
||||||
return *this;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_RVALUE_REFERENCES
|
|
||||||
|
|
||||||
inline _LIBCPP_INLINE_VISIBILITY
|
inline _LIBCPP_INLINE_VISIBILITY
|
||||||
void swap(thread& __x, thread& __y) _NOEXCEPT {__x.swap(__y);}
|
void swap(thread& __x, thread& __y) _NOEXCEPT {__x.swap(__y);}
|
||||||
|
|
|
@ -188,7 +188,7 @@ int main()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#if TEST_STD_VER >= 11
|
||||||
{
|
{
|
||||||
L0 l0;
|
L0 l0;
|
||||||
L0 l1;
|
L0 l1;
|
||||||
|
@ -518,5 +518,5 @@ int main()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif // TEST_HAS_NO_EXCEPTIONS
|
#endif // TEST_HAS_NO_EXCEPTIONS
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // TEST_STD_VER >= 11
|
||||||
}
|
}
|
||||||
|
|
|
@ -126,7 +126,7 @@ int main()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#if TEST_STD_VER >= 11
|
||||||
{
|
{
|
||||||
L0 l0;
|
L0 l0;
|
||||||
L0 l1;
|
L0 l1;
|
||||||
|
@ -522,5 +522,5 @@ int main()
|
||||||
assert(!l2.locked());
|
assert(!l2.locked());
|
||||||
assert(!l3.locked());
|
assert(!l3.locked());
|
||||||
}
|
}
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // TEST_STD_VER >= 11
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ void f3()
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#if TEST_STD_VER >= 11
|
||||||
|
|
||||||
struct init1
|
struct init1
|
||||||
{
|
{
|
||||||
|
@ -101,7 +101,7 @@ void f2()
|
||||||
std::call_once(flg2, init2(), 4, 5);
|
std::call_once(flg2, init2(), 4, 5);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
#endif // TEST_STD_VER >= 11
|
||||||
|
|
||||||
std::once_flag flg41;
|
std::once_flag flg41;
|
||||||
std::once_flag flg42;
|
std::once_flag flg42;
|
||||||
|
@ -135,7 +135,7 @@ void f42()
|
||||||
std::call_once(flg41, init41);
|
std::call_once(flg41, init41);
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#if TEST_STD_VER >= 11
|
||||||
|
|
||||||
class MoveOnly
|
class MoveOnly
|
||||||
{
|
{
|
||||||
|
@ -174,7 +174,6 @@ public:
|
||||||
void operator()(int&) {}
|
void operator()(int&) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
#if TEST_STD_VER >= 11
|
|
||||||
// reference qualifiers on functions are a C++11 extension
|
// reference qualifiers on functions are a C++11 extension
|
||||||
struct RefQual
|
struct RefQual
|
||||||
{
|
{
|
||||||
|
@ -185,8 +184,8 @@ struct RefQual
|
||||||
void operator()() & { ++lv_called; }
|
void operator()() & { ++lv_called; }
|
||||||
void operator()() && { ++rv_called; }
|
void operator()() && { ++rv_called; }
|
||||||
};
|
};
|
||||||
#endif
|
|
||||||
#endif
|
#endif // TEST_STD_VER >= 11
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
|
@ -218,7 +217,7 @@ int main()
|
||||||
assert(init41_called == 1);
|
assert(init41_called == 1);
|
||||||
assert(init42_called == 1);
|
assert(init42_called == 1);
|
||||||
}
|
}
|
||||||
#ifndef _LIBCPP_HAS_NO_VARIADICS
|
#if TEST_STD_VER >= 11
|
||||||
// check functors with 1 arg
|
// check functors with 1 arg
|
||||||
{
|
{
|
||||||
std::thread t0(f1);
|
std::thread t0(f1);
|
||||||
|
@ -245,7 +244,6 @@ int main()
|
||||||
int i = 0;
|
int i = 0;
|
||||||
std::call_once(f, NonCopyable(), i);
|
std::call_once(f, NonCopyable(), i);
|
||||||
}
|
}
|
||||||
#if TEST_STD_VER >= 11
|
|
||||||
// reference qualifiers on functions are a C++11 extension
|
// reference qualifiers on functions are a C++11 extension
|
||||||
{
|
{
|
||||||
std::once_flag f1, f2;
|
std::once_flag f1, f2;
|
||||||
|
@ -255,6 +253,5 @@ int main()
|
||||||
std::call_once(f2, std::move(rq));
|
std::call_once(f2, std::move(rq));
|
||||||
assert(rq.rv_called == 1);
|
assert(rq.rv_called == 1);
|
||||||
}
|
}
|
||||||
#endif
|
#endif // TEST_STD_VER >= 11
|
||||||
#endif // _LIBCPP_HAS_NO_VARIADICS
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,13 +14,14 @@
|
||||||
// constexpr once_flag() noexcept;
|
// constexpr once_flag() noexcept;
|
||||||
|
|
||||||
#include <mutex>
|
#include <mutex>
|
||||||
|
#include "test_macros.h"
|
||||||
|
|
||||||
int main()
|
int main()
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
std::once_flag f;
|
std::once_flag f;
|
||||||
}
|
}
|
||||||
#ifndef _LIBCPP_HAS_NO_CONSTEXPR
|
#if TEST_STD_VER >= 11
|
||||||
{
|
{
|
||||||
constexpr std::once_flag f;
|
constexpr std::once_flag f;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue