1// { dg-options "-std=gnu++14" }
2// { dg-do compile }
3
4#include <utility>
5#include <tuple>
6#include <memory>
7#include <functional>
8#include <type_traits>
9#include <chrono>
10#include <string>
11#include <complex>
12#include <iomanip>
13#include <shared_mutex>
14
15#ifndef  __cpp_lib_integer_sequence
16#  error "__cpp_lib_integer_sequence"
17#elif  __cpp_lib_integer_sequence != 201304
18#  error "__cpp_lib_integer_sequence != 201304"
19#endif
20
21#ifndef  __cpp_lib_exchange_function
22#  error "__cpp_lib_exchange_function"
23#elif  __cpp_lib_exchange_function != 201304
24#  error "__cpp_lib_exchange_function != 201304"
25#endif
26
27#ifndef  __cpp_lib_tuples_by_type
28#  error "__cpp_lib_tuples_by_type"
29#elif  __cpp_lib_tuples_by_type != 201304
30#  error "__cpp_lib_tuples_by_type != 201304"
31#endif
32
33#ifndef  __cpp_lib_make_unique
34#  error "__cpp_lib_make_unique"
35#elif  __cpp_lib_make_unique != 201304
36#  error "__cpp_lib_make_unique != 201304"
37#endif
38
39#ifndef  __cpp_lib_transparent_operators
40#  error "__cpp_lib_transparent_operators"
41#elif  __cpp_lib_transparent_operators != 201210
42#  error "__cpp_lib_transparent_operators != 201210"
43#endif
44
45#ifndef  __cpp_lib_result_of_sfinae
46#  error "__cpp_lib_result_of_sfinae"
47#elif  __cpp_lib_result_of_sfinae != 201210
48#  error "__cpp_lib_result_of_sfinae != 201210"
49#endif
50
51#ifndef  __cpp_lib_integral_constant_callable
52#  error "__cpp_lib_integral_constant_callable"
53#elif  __cpp_lib_integral_constant_callable != 201304
54#  error "__cpp_lib_integral_constant_callable != 201304"
55#endif
56
57#ifndef  __cpp_lib_transformation_trait_aliases
58#  error "__cpp_lib_transformation_trait_aliases"
59#elif  __cpp_lib_transformation_trait_aliases != 201304
60#  error "__cpp_lib_transformation_trait_aliases != 201304"
61#endif
62
63#ifndef  __cpp_lib_chrono_udls
64#  error "__cpp_lib_chrono_udls"
65#elif  __cpp_lib_chrono_udls != 201304
66#  error "__cpp_lib_chrono_udls != 201304"
67#endif
68
69#ifndef  __cpp_lib_string_udls
70#  error "__cpp_lib_string_udls"
71#elif  __cpp_lib_string_udls != 201304
72#  error "__cpp_lib_string_udls != 201304"
73#endif
74
75#ifndef __cpp_lib_complex_udls
76#  error "__cpp_lib_complex_udls"
77#elif  __cpp_lib_complex_udls != 201309
78#  error "__cpp_lib_complex_udls != 201309"
79#endif
80
81//#ifndef  __cpp_lib_generic_associative_lookup
82//#  error "__cpp_lib_generic_associative_lookup"
83//#elif  __cpp_lib_generic_associative_lookup != 201304
84//#  error "__cpp_lib_generic_associative_lookup != 201304"
85//#endif
86
87//#ifndef  __cpp_lib_null_iterators
88//#  error "__cpp_lib_null_iterators"
89//#elif  __cpp_lib_null_iterators != 201304
90//#  error "__cpp_lib_null_iterators != 201304"
91//#endif
92
93#ifndef  __cpp_lib_robust_nonmodifying_seq_ops
94#  error "__cpp_lib_robust_nonmodifying_seq_ops"
95#elif  __cpp_lib_robust_nonmodifying_seq_ops != 201304
96#  error "__cpp_lib_robust_nonmodifying_seq_ops != 201304"
97#endif
98
99#ifndef  __cpp_lib_quoted_string_io
100#  error "__cpp_lib_quoted_string_io"
101#elif  __cpp_lib_quoted_string_io != 201304
102#  error "__cpp_lib_quoted_string_io != 201304"
103#endif
104
105#if !__has_include(<shared_mutex>)
106#  error "<shared_mutex>"
107#endif
108
109#if defined(_GLIBCXX_HAS_GTHREADS) && defined(_GLIBCXX_USE_C99_STDINT_TR1)
110#  ifndef  __cpp_lib_shared_timed_mutex
111#    error "__cpp_lib_shared_timed_mutex"
112#  elif  __cpp_lib_shared_timed_mutex != 201402
113#    error "__cpp_lib_shared_timed_mutex != 201402"
114#  endif
115#endif
116
117#ifndef  __cpp_lib_is_final
118#  error "__cpp_lib_is_final"
119#elif  __cpp_lib_is_final != 201402
120#  error "__cpp_lib_is_final != 201402"
121#endif
122