// -*- C++ -*-
//===--------------------------- version ----------------------------------===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is dual licensed under the MIT and the University of Illinois Open
// Source Licenses. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

#ifndef _LIBCPP_VERSIONH
#define _LIBCPP_VERSIONH

/*
    version synopsis

    Table 35 — Standard library feature-test macros
Macro name                                  Value   Headers
__cpp_lib_addressof_constexpr               201603L <memory>
__cpp_lib_allocator_traits_is_always_equal  201411L <memory> <scoped_allocator> <string> 
                                                    <deque> <forward_list> <list> <vector>
                                                    <map> <set> <unordered_map> <unordered_set>
__cpp_lib_any                               201606L <any>
__cpp_lib_apply                             201603L <tuple>
__cpp_lib_array_constexpr                   201603L <iterator> <array>
__cpp_lib_as_const                          201510L <utility>
__cpp_lib_atomic_is_always_lock_free        201603L <atomic>
__cpp_lib_atomic_ref                        201806L <atomic>
__cpp_lib_bit_cast                          201806L <bit>
__cpp_lib_bool_constant                     201505L <type_traits>
__cpp_lib_boyer_moore_searcher              201603L <functional>
__cpp_lib_byte                              201603L <cstddef>
__cpp_lib_chrono                            201611L <chrono>
__cpp_lib_clamp                             201603L <algorithm>
__cpp_lib_complex_udls                      201309L <complex>
__cpp_lib_concepts                          201806L <concepts>
__cpp_lib_constexpr_swap_algorithms         201806L <algorithm>
__cpp_lib_enable_shared_from_this           201603L <memory>
__cpp_lib_exchange_function                 201304L <utility>
__cpp_lib_execution                         201603L <execution>
__cpp_lib_filesystem                        201703L <filesystem>
__cpp_lib_gcd_lcm                           201606L <numeric>
__cpp_lib_generic_associative_lookup        201304L <map> <set>
__cpp_lib_hardware_interference_size        201703L <new>
__cpp_lib_has_unique_object_representations 201606L <type_traits>
__cpp_lib_hypot                             201603L <cmath>
__cpp_lib_incomplete_container_elements     201505L <forward_list> <list> <vector>
__cpp_lib_integer_sequence                  201304L <utility>
__cpp_lib_integral_constant_callable        201304L <type_traits>
__cpp_lib_invoke                            201411L <functional>
__cpp_lib_is_aggregate                      201703L <type_traits>
__cpp_lib_is_final                          201402L <type_traits>
__cpp_lib_is_invocable                      201703L <type_traits>
__cpp_lib_is_null_pointer                   201309L <type_traits>
__cpp_lib_is_swappable                      201603L <type_traits>
__cpp_lib_launder                           201606L <new>
__cpp_lib_list_remove_return_type           201806L <forward_list> <list>
__cpp_lib_logical_traits                    201510L <type_traits>
__cpp_lib_make_from_tuple                   201606L <tuple>
__cpp_lib_make_reverse_iterator             201402L <iterator>
__cpp_lib_make_unique                       201304L <memory>
__cpp_lib_map_try_emplace                   201411L <map>
__cpp_lib_math_special_functions            201603L <cmath>
__cpp_lib_memory_resource                   201603L <memory_resource>
__cpp_lib_node_extract                      201606L <map> <set> <unordered_map> <unordered_set>
__cpp_lib_nonmember_container_access        201411L <iterator> <array> <deque> <forward_list>
                                                    <list> <map> <regex> <set> <string>
                                                    <unordered_map> <unordered_set> <vector>
__cpp_lib_not_fn                            201603L <functional>
__cpp_lib_null_iterators                    201304L <iterator>
__cpp_lib_optional                          201606L <optional>
__cpp_lib_parallel_algorithm                201603L <algorithm> <numeric>
__cpp_lib_quoted_string_io                  201304L <iomanip>
__cpp_lib_raw_memory_algorithms             201606L <memory>
__cpp_lib_result_of_sfinae                  201210L <functional> <type_traits>
__cpp_lib_robust_nonmodifying_seq_ops       201304L <algorithm>
__cpp_lib_sample                            201603L <algorithm>
__cpp_lib_scoped_lock                       201703L <mutex>
__cpp_lib_shared_mutex                      201505L <shared_mutex>
__cpp_lib_shared_ptr_arrays                 201611L <memory>
__cpp_lib_shared_ptr_weak_type              201606L <memory>
__cpp_lib_shared_timed_mutex                201402L <shared_mutex>
__cpp_lib_string_udls                       201304L <string>
__cpp_lib_string_view                       201606L <string> <string_view>
__cpp_lib_to_chars                          201611L <utility>
__cpp_lib_transformation_trait_aliases      201304L <type_traits>
__cpp_lib_transparent_operators             201510L <memory> <functional>
__cpp_lib_tuple_element_t                   201402L <tuple>
__cpp_lib_tuples_by_type                    201304L <utility> <tuple>
__cpp_lib_type_trait_variable_templates     201510L <type_traits>
__cpp_lib_uncaught_exceptions               201411L <exception>
__cpp_lib_unordered_map_try_emplace         201411L <unordered_map>
__cpp_lib_variant                           201606L <variant>
__cpp_lib_void_t                            201411L <type_traits>

*/

#include <__config>

#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
#pragma GCC system_header
#endif

#if _LIBCPP_STD_VER > 11
#endif

#if _LIBCPP_STD_VER > 14
# define __cpp_lib_atomic_is_always_lock_free           201603L
# define __cpp_lib_filesystem                           201703L
# define __cpp_lib_invoke                               201411L
# define __cpp_lib_void_t                               201411L
#endif

#if _LIBCPP_STD_VER > 17
#endif

#endif  // _LIBCPP_VERSIONH
