libcxx

libcxx mirror with random patches
git clone https://git.neptards.moe/neptards/libcxx.git
Log | Files | Refs

new.version.pass.cpp (3233B)


      1 //===----------------------------------------------------------------------===//
      2 //
      3 //                     The LLVM Compiler Infrastructure
      4 //
      5 // This file is dual licensed under the MIT and the University of Illinois Open
      6 // Source Licenses. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 //
     10 // WARNING: This test was generated by generate_feature_test_macro_components.py
     11 // and should not be edited manually.
     12 
     13 // <new>
     14 
     15 // Test the feature test macros defined by <new>
     16 
     17 /*  Constant                                Value
     18     __cpp_lib_destroying_delete             201806L [C++2a]
     19     __cpp_lib_hardware_interference_size    201703L [C++17]
     20     __cpp_lib_launder                       201606L [C++17]
     21 */
     22 
     23 #include <new>
     24 #include "test_macros.h"
     25 
     26 #if TEST_STD_VER < 14
     27 
     28 # ifdef __cpp_lib_destroying_delete
     29 #   error "__cpp_lib_destroying_delete should not be defined before c++2a"
     30 # endif
     31 
     32 # ifdef __cpp_lib_hardware_interference_size
     33 #   error "__cpp_lib_hardware_interference_size should not be defined before c++17"
     34 # endif
     35 
     36 # ifdef __cpp_lib_launder
     37 #   error "__cpp_lib_launder should not be defined before c++17"
     38 # endif
     39 
     40 #elif TEST_STD_VER == 14
     41 
     42 # ifdef __cpp_lib_destroying_delete
     43 #   error "__cpp_lib_destroying_delete should not be defined before c++2a"
     44 # endif
     45 
     46 # ifdef __cpp_lib_hardware_interference_size
     47 #   error "__cpp_lib_hardware_interference_size should not be defined before c++17"
     48 # endif
     49 
     50 # ifdef __cpp_lib_launder
     51 #   error "__cpp_lib_launder should not be defined before c++17"
     52 # endif
     53 
     54 #elif TEST_STD_VER == 17
     55 
     56 # ifdef __cpp_lib_destroying_delete
     57 #   error "__cpp_lib_destroying_delete should not be defined before c++2a"
     58 # endif
     59 
     60 # ifndef __cpp_lib_hardware_interference_size
     61 #   error "__cpp_lib_hardware_interference_size should be defined in c++17"
     62 # endif
     63 # if __cpp_lib_hardware_interference_size != 201703L
     64 #   error "__cpp_lib_hardware_interference_size should have the value 201703L in c++17"
     65 # endif
     66 
     67 # ifndef __cpp_lib_launder
     68 #   error "__cpp_lib_launder should be defined in c++17"
     69 # endif
     70 # if __cpp_lib_launder != 201606L
     71 #   error "__cpp_lib_launder should have the value 201606L in c++17"
     72 # endif
     73 
     74 #elif TEST_STD_VER > 17
     75 
     76 # if !defined(_LIBCPP_VERSION)
     77 #   ifndef __cpp_lib_destroying_delete
     78 #     error "__cpp_lib_destroying_delete should be defined in c++2a"
     79 #   endif
     80 #   if __cpp_lib_destroying_delete != 201806L
     81 #     error "__cpp_lib_destroying_delete should have the value 201806L in c++2a"
     82 #   endif
     83 # else // _LIBCPP_VERSION
     84 #   ifdef __cpp_lib_destroying_delete
     85 #     error "__cpp_lib_destroying_delete should not be defined because it is unimplemented in libc++!"
     86 #   endif
     87 # endif
     88 
     89 # ifndef __cpp_lib_hardware_interference_size
     90 #   error "__cpp_lib_hardware_interference_size should be defined in c++2a"
     91 # endif
     92 # if __cpp_lib_hardware_interference_size != 201703L
     93 #   error "__cpp_lib_hardware_interference_size should have the value 201703L in c++2a"
     94 # endif
     95 
     96 # ifndef __cpp_lib_launder
     97 #   error "__cpp_lib_launder should be defined in c++2a"
     98 # endif
     99 # if __cpp_lib_launder != 201606L
    100 #   error "__cpp_lib_launder should have the value 201606L in c++2a"
    101 # endif
    102 
    103 #endif // TEST_STD_VER > 17
    104 
    105 int main() {}