#ifndef ATOMIC_HELPERS_H #define ATOMIC_HELPERS_H #include #include "test_macros.h" struct UserAtomicType { int i; explicit UserAtomicType(int d = 0) TEST_NOEXCEPT : i(d) {} friend bool operator==(const UserAtomicType& x, const UserAtomicType& y) { return x.i == y.i; } }; template < template class TestFunctor > struct TestEachIntegralType { void operator()() const { TestFunctor()(); TestFunctor()(); TestFunctor()(); TestFunctor()(); TestFunctor()(); TestFunctor()(); TestFunctor()(); TestFunctor()(); TestFunctor()(); TestFunctor()(); TestFunctor()(); TestFunctor(); #ifndef _LIBCPP_HAS_NO_UNICODE_CHARS TestFunctor()(); TestFunctor()(); #endif } }; template < template class TestFunctor > struct TestEachAtomicType { void operator()() const { TestEachIntegralType()(); TestFunctor()(); TestFunctor()(); TestFunctor()(); } }; #endif // ATOMIC_HELPER_H