-
- Downloads
Define std::atomic_ref and std::atomic<floating-point> for C++20
This adds the new atomic types from C++2a, as proposed by P0019 and P0020. To reduce duplication the calls to the compiler's atomic built-ins are wrapped in new functions in the __atomic_impl namespace. These functions are currently only used by std::atomic<floating-point> and std::atomic_ref but could also be used for all other specializations of std::atomic. * include/bits/atomic_base.h (__atomic_impl): New namespace for wrappers around atomic built-ins. (__atomic_float, __atomic_ref): New class templates for use as base classes. * include/std/atomic (atomic<float>, atomic<double>) (atomic<long double>): New explicit specializations. (atomic_ref): New class template. (__cpp_lib_atomic_ref): Define. * include/std/version (__cpp_lib_atomic_ref): Define. * testsuite/29_atomics/atomic/60695.cc: Adjust dg-error. * testsuite/29_atomics/atomic_float/1.cc: New test. * testsuite/29_atomics/atomic_float/requirements.cc: New test. * testsuite/29_atomics/atomic_ref/deduction.cc: New test. * testsuite/29_atomics/atomic_ref/float.cc: New test. * testsuite/29_atomics/atomic_ref/generic.cc: New test. * testsuite/29_atomics/atomic_ref/integral.cc: New test. * testsuite/29_atomics/atomic_ref/pointer.cc: New test. * testsuite/29_atomics/atomic_ref/requirements.cc: New test. From-SVN: r273420
Showing
- libstdc++-v3/ChangeLog 21 additions, 0 deletionslibstdc++-v3/ChangeLog
- libstdc++-v3/include/bits/atomic_base.h 871 additions, 0 deletionslibstdc++-v3/include/bits/atomic_base.h
- libstdc++-v3/include/std/atomic 65 additions, 1 deletionlibstdc++-v3/include/std/atomic
- libstdc++-v3/include/std/version 1 addition, 0 deletionslibstdc++-v3/include/std/version
- libstdc++-v3/testsuite/29_atomics/atomic/60695.cc 1 addition, 1 deletionlibstdc++-v3/testsuite/29_atomics/atomic/60695.cc
- libstdc++-v3/testsuite/29_atomics/atomic_float/1.cc 573 additions, 0 deletionslibstdc++-v3/testsuite/29_atomics/atomic_float/1.cc
- libstdc++-v3/testsuite/29_atomics/atomic_float/requirements.cc 69 additions, 0 deletions...dc++-v3/testsuite/29_atomics/atomic_float/requirements.cc
- libstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc 41 additions, 0 deletionslibstdc++-v3/testsuite/29_atomics/atomic_ref/deduction.cc
- libstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc 320 additions, 0 deletionslibstdc++-v3/testsuite/29_atomics/atomic_ref/float.cc
- libstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc 122 additions, 0 deletionslibstdc++-v3/testsuite/29_atomics/atomic_ref/generic.cc
- libstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc 331 additions, 0 deletionslibstdc++-v3/testsuite/29_atomics/atomic_ref/integral.cc
- libstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc 225 additions, 0 deletionslibstdc++-v3/testsuite/29_atomics/atomic_ref/pointer.cc
- libstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc 74 additions, 0 deletionslibstdc++-v3/testsuite/29_atomics/atomic_ref/requirements.cc
Loading
Please register or sign in to comment