1 // { dg-do preprocess { target c++14 } }
12 #include <shared_mutex>
16 #ifndef __cpp_lib_integer_sequence
17 # error "__cpp_lib_integer_sequence"
18 #elif __cpp_lib_integer_sequence != 201304
19 # error "__cpp_lib_integer_sequence != 201304"
22 #ifndef __cpp_lib_exchange_function
23 # error "__cpp_lib_exchange_function"
24 #elif __cpp_lib_exchange_function != 201304
25 # error "__cpp_lib_exchange_function != 201304"
28 #ifndef __cpp_lib_tuples_by_type
29 # error "__cpp_lib_tuples_by_type"
30 #elif __cpp_lib_tuples_by_type != 201304
31 # error "__cpp_lib_tuples_by_type != 201304"
34 #ifndef __cpp_lib_make_unique
35 # error "__cpp_lib_make_unique"
36 #elif __cpp_lib_make_unique != 201304
37 # error "__cpp_lib_make_unique != 201304"
40 #ifndef __cpp_lib_transparent_operators
41 # error "__cpp_lib_transparent_operators"
42 #elif __cpp_lib_transparent_operators < 201210
43 # error "__cpp_lib_transparent_operators < 201210"
46 #ifndef __cpp_lib_result_of_sfinae
47 # error "__cpp_lib_result_of_sfinae"
48 #elif __cpp_lib_result_of_sfinae != 201210
49 # error "__cpp_lib_result_of_sfinae != 201210"
52 #ifndef __cpp_lib_integral_constant_callable
53 # error "__cpp_lib_integral_constant_callable"
54 #elif __cpp_lib_integral_constant_callable != 201304
55 # error "__cpp_lib_integral_constant_callable != 201304"
58 #ifndef __cpp_lib_transformation_trait_aliases
59 # error "__cpp_lib_transformation_trait_aliases"
60 #elif __cpp_lib_transformation_trait_aliases != 201304
61 # error "__cpp_lib_transformation_trait_aliases != 201304"
64 #ifndef __cpp_lib_chrono_udls
65 # error "__cpp_lib_chrono_udls"
66 #elif __cpp_lib_chrono_udls != 201304
67 # error "__cpp_lib_chrono_udls != 201304"
70 #ifndef __cpp_lib_string_udls
71 # error "__cpp_lib_string_udls"
72 #elif __cpp_lib_string_udls != 201304
73 # error "__cpp_lib_string_udls != 201304"
76 #ifndef __cpp_lib_complex_udls
77 # error "__cpp_lib_complex_udls"
78 #elif __cpp_lib_complex_udls != 201309
79 # error "__cpp_lib_complex_udls != 201309"
82 #ifndef __cpp_lib_generic_associative_lookup
83 # error "__cpp_lib_generic_associative_lookup"
84 #elif __cpp_lib_generic_associative_lookup != 201304
85 # error "__cpp_lib_generic_associative_lookup != 201304"
88 //#ifndef __cpp_lib_null_iterators
89 //# error "__cpp_lib_null_iterators"
90 //#elif __cpp_lib_null_iterators != 201304
91 //# error "__cpp_lib_null_iterators != 201304"
94 #ifndef __cpp_lib_robust_nonmodifying_seq_ops
95 # error "__cpp_lib_robust_nonmodifying_seq_ops"
96 #elif __cpp_lib_robust_nonmodifying_seq_ops != 201304
97 # error "__cpp_lib_robust_nonmodifying_seq_ops != 201304"
100 #ifndef __cpp_lib_quoted_string_io
101 # error "__cpp_lib_quoted_string_io"
102 #elif __cpp_lib_quoted_string_io != 201304
103 # error "__cpp_lib_quoted_string_io != 201304"
106 #if !__has_include(<shared_mutex>)
107 # error "<shared_mutex>"
110 #if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
111 # ifndef __cpp_lib_shared_timed_mutex
112 # error "__cpp_lib_shared_timed_mutex"
113 # elif __cpp_lib_shared_timed_mutex != 201402
114 # error "__cpp_lib_shared_timed_mutex != 201402"
118 #ifndef __cpp_lib_is_final
119 # error "__cpp_lib_is_final"
120 #elif __cpp_lib_is_final != 201402
121 # error "__cpp_lib_is_final != 201402"
124 #ifndef __cpp_lib_is_null_pointer
125 # error "__cpp_lib_is_null_pointer"
126 #elif __cpp_lib_is_null_pointer != 201309
127 # error "__cpp_lib_is_null_pointer != 201309"
130 #ifndef __cpp_lib_make_reverse_iterator
131 # error "__cpp_lib_make_reverse_iterator"
132 #elif __cpp_lib_make_reverse_iterator != 201402
133 # error "__cpp_lib_make_reverse_iterator != 201402"