1// -*- C++ -*- Libstdc++ version details header. 2 3// Copyright (C) 2018-2019 Free Software Foundation, Inc. 4// 5// This file is part of the GNU ISO C++ Library. This library is free 6// software; you can redistribute it and/or modify it under the 7// terms of the GNU General Public License as published by the 8// Free Software Foundation; either version 3, or (at your option) 9// any later version. 10 11// This library is distributed in the hope that it will be useful, 12// but WITHOUT ANY WARRANTY; without even the implied warranty of 13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14// GNU General Public License for more details. 15 16// Under Section 7 of GPL version 3, you are granted additional 17// permissions described in the GCC Runtime Library Exception, version 18// 3.1, as published by the Free Software Foundation. 19 20// You should have received a copy of the GNU General Public License and 21// a copy of the GCC Runtime Library Exception along with this program; 22// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see 23// <http://www.gnu.org/licenses/>. 24 25/** @file version 26 * This is a Standard C++ Library file. You should @c \#include this file 27 * in your programs, rather than any of the @a *.h implementation files. 28 */ 29 30#ifndef _GLIBCXX_VERSION_INCLUDED 31#define _GLIBCXX_VERSION_INCLUDED 32 33#pragma GCC system_header 34 35#include <bits/c++config.h> 36 37// c++03 38#define __cpp_lib_incomplete_container_elements 201505 39 40#if !defined(__STRICT_ANSI__) 41// gnu++03 42# define __cpp_lib_uncaught_exceptions 201411L 43#endif 44 45#if __cplusplus >= 201103L 46// c++11 47#define __cpp_lib_allocator_is_always_equal 201411 48#define __cpp_lib_allocator_traits_is_always_equal 201411 49#define __cpp_lib_is_null_pointer 201309 50#define __cpp_lib_result_of_sfinae 201210 51#define __cpp_lib_shared_ptr_arrays 201611L 52 53#if !defined(__STRICT_ANSI__) 54// gnu++11 55# define __cpp_lib_enable_shared_from_this 201603 56# define __cpp_lib_is_swappable 201603 57# define __cpp_lib_void_t 201411 58#endif 59 60// For C++11 and later we support ISO/IEC 29124 Mathematical Special Functions 61#define __STDCPP_MATH_SPEC_FUNCS__ 201003L 62 63#if __cplusplus >= 201402L 64// c++14 65#define __cpp_lib_chrono_udls 201304 66#define __cpp_lib_complex_udls 201309 67#define __cpp_lib_exchange_function 201304 68#define __cpp_lib_generic_associative_lookup 201304 69#define __cpp_lib_integer_sequence 201304 70#define __cpp_lib_integral_constant_callable 201304 71#define __cpp_lib_is_final 201402L 72#define __cpp_lib_make_reverse_iterator 201402 73#define __cpp_lib_make_unique 201304 74#ifndef _GLIBCXX_DEBUG // PR libstdc++/70303 75# define __cpp_lib_null_iterators 201304L 76#endif 77#define __cpp_lib_quoted_string_io 201304 78#define __cpp_lib_robust_nonmodifying_seq_ops 201304 79#ifdef _GLIBCXX_HAS_GTHREADS 80# define __cpp_lib_shared_timed_mutex 201402 81#endif 82#define __cpp_lib_string_udls 201304 83#define __cpp_lib_transformation_trait_aliases 201304 84#define __cpp_lib_transparent_operators 201510 85#define __cpp_lib_tuple_element_t 201402L 86#define __cpp_lib_tuples_by_type 201304 87 88#if __cplusplus >= 201703L 89// c++17 90#define __cpp_lib_addressof_constexpr 201603 91#define __cpp_lib_any 201606L 92#define __cpp_lib_apply 201603 93#define __cpp_lib_array_constexpr 201603 94#define __cpp_lib_as_const 201510 95#define __cpp_lib_atomic_is_always_lock_free 201603 96#define __cpp_lib_bool_constant 201505 97#define __cpp_lib_boyer_moore_searcher 201603 98#define __cpp_lib_byte 201603 99#define __cpp_lib_chrono 201611 100#define __cpp_lib_clamp 201603 101#define __cpp_lib_constexpr_char_traits 201611 102#define __cpp_lib_enable_shared_from_this 201603 103#define __cpp_lib_filesystem 201703 104#define __cpp_lib_gcd 201606 105#define __cpp_lib_gcd_lcm 201606 106#ifdef _GLIBCXX_HAVE_BUILTIN_HAS_UNIQ_OBJ_REP 107# define __cpp_lib_has_unique_object_representations 201606 108#endif 109#define __cpp_lib_hypot 201603 110#define __cpp_lib_invoke 201411 111#ifdef _GLIBCXX_HAVE_BUILTIN_IS_AGGREGATE 112# define __cpp_lib_is_aggregate 201703 113#endif 114#define __cpp_lib_is_invocable 201703 115#define __cpp_lib_is_swappable 201603 116#ifdef _GLIBCXX_HAVE_BUILTIN_LAUNDER 117# define __cpp_lib_launder 201606 118#endif 119#define __cpp_lib_lcm 201606 120#define __cpp_lib_logical_traits 201510 121#define __cpp_lib_make_from_tuple 201606 122#define __cpp_lib_map_insertion 201411 123#define __cpp_lib_map_try_emplace 201411 124#define __cpp_lib_math_special_functions 201603L 125#ifdef _GLIBCXX_HAS_GTHREADS 126# define __cpp_lib_memory_resource 201603 127#else 128# define __cpp_lib_memory_resource 1 129#endif 130#define __cpp_lib_node_extract 201606 131#define __cpp_lib_nonmember_container_access 201411 132#define __cpp_lib_not_fn 201603 133#define __cpp_lib_optional 201606L 134#define __cpp_lib_raw_memory_algorithms 201606L 135#define __cpp_lib_sample 201603 136#ifdef _GLIBCXX_HAS_GTHREADS 137# define __cpp_lib_scoped_lock 201703 138# define __cpp_lib_shared_mutex 201505 139#endif 140#define __cpp_lib_shared_ptr_weak_type 201606 141#define __cpp_lib_string_view 201603 142#define __cpp_lib_type_trait_variable_templates 201510L 143#define __cpp_lib_uncaught_exceptions 201411L 144#define __cpp_lib_unordered_map_insertion 201411 145#define __cpp_lib_unordered_map_try_emplace 201411 146#define __cpp_lib_variant 201606L 147#define __cpp_lib_void_t 201411 148#define __cpp_lib_parallel_algorithm 201603L 149 150#if __cplusplus > 201703L 151// c++2a 152#define __cpp_lib_bind_front 201907L 153#define __cpp_lib_bounded_array_traits 201902L 154#if __cpp_impl_destroying_delete 155# define __cpp_lib_destroying_delete 201806L 156#endif 157#define __cpp_lib_endian 201907L 158#define __cpp_lib_erase_if 201900L 159#define __cpp_lib_interpolate 201902L 160#ifdef _GLIBCXX_HAVE_BUILTIN_IS_CONSTANT_EVALUATED 161# define __cpp_lib_is_constant_evaluated 201811L 162#endif 163#define __cpp_lib_list_remove_return_type 201806L 164#endif // C++2a 165#endif // C++17 166#endif // C++14 167#endif // C++11 168 169#endif // _GLIBCXX_VERSION_INCLUDED 170