codekingpro/portable-devtools
114k
1// -*- C++ -*-2//===--------------------------- version ----------------------------------===//3//4// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.5// See https://llvm.org/LICENSE.txt for license information.6// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception7//8//===----------------------------------------------------------------------===//9 10#ifndef _LIBCUDACXX_VERSIONH11#define _LIBCUDACXX_VERSIONH12 13 14/*15 version synopsis16 17Macro name Value Headers18__cpp_lib_adaptor_iterator_pair_constructor 202106L <queue> <stack>19__cpp_lib_addressof_constexpr 201603L <memory>20__cpp_lib_allocate_at_least 202106L <memory>21__cpp_lib_allocator_traits_is_always_equal 201411L <deque> <forward_list> <list>22 <map> <memory> <scoped_allocator>23 <set> <string> <unordered_map>24 <unordered_set> <vector>25__cpp_lib_any 201606L <any>26__cpp_lib_apply 201603L <tuple>27__cpp_lib_array_constexpr 201811L <array> <iterator>28 201603L // C++1729__cpp_lib_as_const 201510L <utility>30__cpp_lib_associative_heterogeneous_erasure 202110L <map> <set> <unordered_map>31 <unordered_set>32__cpp_lib_assume_aligned 201811L <memory>33__cpp_lib_atomic_flag_test 201907L <atomic>34__cpp_lib_atomic_float 201711L <atomic>35__cpp_lib_atomic_is_always_lock_free 201603L <atomic>36__cpp_lib_atomic_lock_free_type_aliases 201907L <atomic>37__cpp_lib_atomic_ref 201806L <atomic>38__cpp_lib_atomic_shared_ptr 201711L <atomic>39__cpp_lib_atomic_value_initialization 201911L <atomic> <memory>40__cpp_lib_atomic_wait 201907L <atomic>41__cpp_lib_barrier 201907L <barrier>42__cpp_lib_bind_back 202202L <functional>43__cpp_lib_bind_front 201907L <functional>44__cpp_lib_bit_cast 201806L <bit>45__cpp_lib_bitops 201907L <bit>46__cpp_lib_bool_constant 201505L <type_traits>47__cpp_lib_bounded_array_traits 201902L <type_traits>48__cpp_lib_boyer_moore_searcher 201603L <functional>49__cpp_lib_byte 201603L <cstddef>50__cpp_lib_byteswap 202110L <bit>51__cpp_lib_char8_t 201907L <atomic> <filesystem> <istream>52 <limits> <locale> <ostream>53 <string> <string_view>54__cpp_lib_chrono 201611L <chrono>55__cpp_lib_chrono_udls 201304L <chrono>56__cpp_lib_clamp 201603L <algorithm>57__cpp_lib_complex_udls 201309L <complex>58__cpp_lib_concepts 202002L <concepts>59__cpp_lib_constexpr_algorithms 201806L <algorithm>60__cpp_lib_constexpr_bitset 202207L <bitset>61__cpp_lib_constexpr_charconv 202207L <charconv>62__cpp_lib_constexpr_cmath 202202L <cmath> <cstdlib>63__cpp_lib_constexpr_complex 201711L <complex>64__cpp_lib_constexpr_dynamic_alloc 201907L <memory>65__cpp_lib_constexpr_functional 201907L <functional>66__cpp_lib_constexpr_iterator 201811L <iterator>67__cpp_lib_constexpr_memory 202202L <memory>68 201811L // C++2069__cpp_lib_constexpr_numeric 201911L <numeric>70__cpp_lib_constexpr_string 201907L <string>71__cpp_lib_constexpr_string_view 201811L <string_view>72__cpp_lib_constexpr_tuple 201811L <tuple>73__cpp_lib_constexpr_typeinfo 202106L <typeinfo>74__cpp_lib_constexpr_utility 201811L <utility>75__cpp_lib_constexpr_vector 201907L <vector>76__cpp_lib_coroutine 201902L <coroutine>77__cpp_lib_destroying_delete 201806L <new>78__cpp_lib_enable_shared_from_this 201603L <memory>79__cpp_lib_endian 201907L <bit>80__cpp_lib_erase_if 202002L <deque> <forward_list> <list>81 <map> <set> <string>82 <unordered_map> <unordered_set> <vector>83__cpp_lib_exchange_function 201304L <utility>84__cpp_lib_execution 201902L <execution>85 201603L // C++1786__cpp_lib_filesystem 201703L <filesystem>87__cpp_lib_format 202106L <format>88__cpp_lib_forward_like 202207L <utility>89__cpp_lib_gcd_lcm 201606L <numeric>90__cpp_lib_generic_associative_lookup 201304L <map> <set>91__cpp_lib_generic_unordered_lookup 201811L <unordered_map> <unordered_set>92__cpp_lib_hardware_interference_size 201703L <new>93__cpp_lib_has_unique_object_representations 201606L <type_traits>94__cpp_lib_hypot 201603L <cmath>95__cpp_lib_incomplete_container_elements 201505L <forward_list> <list> <vector>96__cpp_lib_int_pow2 202002L <bit>97__cpp_lib_integer_comparison_functions 202002L <utility>98__cpp_lib_integer_sequence 201304L <utility>99__cpp_lib_integral_constant_callable 201304L <type_traits>100__cpp_lib_interpolate 201902L <cmath> <numeric>101__cpp_lib_invoke 201411L <functional>102__cpp_lib_invoke_r 202106L <functional>103__cpp_lib_is_aggregate 201703L <type_traits>104__cpp_lib_is_constant_evaluated 201811L <type_traits>105__cpp_lib_is_final 201402L <type_traits>106__cpp_lib_is_invocable 201703L <type_traits>107__cpp_lib_is_layout_compatible 201907L <type_traits>108__cpp_lib_is_nothrow_convertible 201806L <type_traits>109__cpp_lib_is_null_pointer 201309L <type_traits>110__cpp_lib_is_pointer_interconvertible 201907L <type_traits>111__cpp_lib_is_scoped_enum 202011L <type_traits>112__cpp_lib_is_swappable 201603L <type_traits>113__cpp_lib_jthread 201911L <stop_token> <thread>114__cpp_lib_latch 201907L <latch>115__cpp_lib_launder 201606L <new>116__cpp_lib_list_remove_return_type 201806L <forward_list> <list>117__cpp_lib_logical_traits 201510L <type_traits>118__cpp_lib_make_from_tuple 201606L <tuple>119__cpp_lib_make_reverse_iterator 201402L <iterator>120__cpp_lib_make_unique 201304L <memory>121__cpp_lib_map_try_emplace 201411L <map>122__cpp_lib_math_constants 201907L <numbers>123__cpp_lib_math_special_functions 201603L <cmath>124__cpp_lib_memory_resource 201603L <memory_resource>125__cpp_lib_move_only_function 202110L <functional>126__cpp_lib_node_extract 201606L <map> <set> <unordered_map>127 <unordered_set>128__cpp_lib_nonmember_container_access 201411L <array> <deque> <forward_list>129 <iterator> <list> <map>130 <regex> <set> <string>131 <unordered_map> <unordered_set> <vector>132__cpp_lib_not_fn 201603L <functional>133__cpp_lib_null_iterators 201304L <iterator>134__cpp_lib_optional 202110L <optional>135 201606L // C++17136__cpp_lib_out_ptr 202106L <memory>137__cpp_lib_parallel_algorithm 201603L <algorithm> <numeric>138__cpp_lib_polymorphic_allocator 201902L <memory_resource>139__cpp_lib_quoted_string_io 201304L <iomanip>140__cpp_lib_ranges 201811L <algorithm> <functional> <iterator>141 <memory> <ranges>142__cpp_lib_ranges_chunk 202202L <ranges>143__cpp_lib_ranges_chunk_by 202202L <ranges>144__cpp_lib_ranges_iota 202202L <numeric>145__cpp_lib_ranges_join_with 202202L <ranges>146__cpp_lib_ranges_slide 202202L <ranges>147__cpp_lib_ranges_starts_ends_with 202106L <algorithm>148__cpp_lib_ranges_to_container 202202L <deque> <forward_list> <list>149 <map> <priority_queue> <queue>150 <set> <stack> <string>151 <unordered_map> <unordered_set> <vector>152__cpp_lib_ranges_zip 202110L <ranges> <tuple> <utility>153__cpp_lib_raw_memory_algorithms 201606L <memory>154__cpp_lib_reference_from_temporary 202202L <type_traits>155__cpp_lib_remove_cvref 201711L <type_traits>156__cpp_lib_result_of_sfinae 201210L <functional> <type_traits>157__cpp_lib_robust_nonmodifying_seq_ops 201304L <algorithm>158__cpp_lib_sample 201603L <algorithm>159__cpp_lib_scoped_lock 201703L <mutex>160__cpp_lib_semaphore 201907L <semaphore>161__cpp_lib_shared_mutex 201505L <shared_mutex>162__cpp_lib_shared_ptr_arrays 201707L <memory>163 201611L // C++17164__cpp_lib_shared_ptr_weak_type 201606L <memory>165__cpp_lib_shared_timed_mutex 201402L <shared_mutex>166__cpp_lib_shift 201806L <algorithm>167__cpp_lib_smart_ptr_for_overwrite 202002L <memory>168__cpp_lib_source_location 201907L <source_location>169__cpp_lib_span 202002L <span>170__cpp_lib_spanstream 202106L <spanstream>171__cpp_lib_ssize 201902L <iterator>172__cpp_lib_stacktrace 202011L <stacktrace>173__cpp_lib_starts_ends_with 201711L <string> <string_view>174__cpp_lib_stdatomic_h 202011L <stdatomic.h>175__cpp_lib_string_contains 202011L <string> <string_view>176__cpp_lib_string_resize_and_overwrite 202110L <string>177__cpp_lib_string_udls 201304L <string>178__cpp_lib_string_view 201803L <string> <string_view>179 201606L // C++17180__cpp_lib_syncbuf 201803L <syncstream>181__cpp_lib_three_way_comparison 201907L <compare>182__cpp_lib_to_address 201711L <memory>183__cpp_lib_to_array 201907L <array>184__cpp_lib_to_chars 201611L <charconv>185__cpp_lib_to_underlying 202102L <utility>186__cpp_lib_transformation_trait_aliases 201304L <type_traits>187__cpp_lib_transparent_operators 201510L <functional> <memory>188 201210L // C++14189__cpp_lib_tuple_element_t 201402L <tuple>190__cpp_lib_tuples_by_type 201304L <tuple> <utility>191__cpp_lib_type_identity 201806L <type_traits>192__cpp_lib_type_trait_variable_templates 201510L <type_traits>193__cpp_lib_uncaught_exceptions 201411L <exception>194__cpp_lib_unordered_map_try_emplace 201411L <unordered_map>195__cpp_lib_unreachable 202202L <utility>196__cpp_lib_unwrap_ref 201811L <functional>197__cpp_lib_variant 202102L <variant>198__cpp_lib_void_t 201411L <type_traits>199 200*/201 202#ifndef __cuda_std__203#include <__config>204#endif // __cuda_std__205 206#if defined(_CCCL_IMPLICIT_SYSTEM_HEADER_GCC)207# pragma GCC system_header208#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_CLANG)209# pragma clang system_header210#elif defined(_CCCL_IMPLICIT_SYSTEM_HEADER_MSVC)211# pragma system_header212#endif // no system header213 214// If we are replacing the stl we need to define our own feature test macros.215// However, if we are in __cuda_std__ we need to define our own symbols to not216// conflict with the host stl.217// At the same time we want bring in all feature test macros from host218#ifdef __cuda_std__219#if __has_include(<version>) // <version> should be the smallest include possible220#include <version>221#elif !defined(_LIBCUDACXX_COMPILER_NVRTC)222#include <ciso646> // otherwise go for the smallest possible header223#endif224#endif // __cuda_std__225 226// We unconditionally define `__cccl_lib_meow` so that there is only one place to set the value227#if _LIBCUDACXX_STD_VER > 11228# define __cccl_lib_chrono_udls 201304L229# define __cccl_lib_complex_udls 201309L230#ifdef _LIBCUDACXX_IS_CONSTANT_EVALUATED231# define __cccl_lib_constexpr_complex 201711L232#endif233# define __cccl_lib_concepts 202002L234# define __cccl_lib_exchange_function 201304L235# define __cccl_lib_expected 202211L236// # define __cccl_lib_generic_associative_lookup 201304L237# define __cccl_lib_integer_sequence 201304L238# define __cccl_lib_integral_constant_callable 201304L239# define __cccl_lib_is_final 201402L240# define __cccl_lib_is_null_pointer 201309L241# define __cccl_lib_make_reverse_iterator 201402L242// # define __cccl_lib_make_unique 201304L243# define __cccl_lib_null_iterators 201304L244# define __cccl_lib_optional 202110L245// # define __cccl_lib_quoted_string_io 201304L246# define __cccl_lib_result_of_sfinae 201210L247# define __cccl_lib_robust_nonmodifying_seq_ops 201304L248# if !defined(_LIBCUDACXX_HAS_NO_THREADS)249// # define __cccl_lib_shared_timed_mutex 201402L250# endif251# define __cccl_lib_span 201902L252// # define __cccl_lib_string_udls 201304L253# define __cccl_lib_transformation_trait_aliases 201304L254# define __cccl_lib_transparent_operators 201210L255# define __cccl_lib_tuple_element_t 201402L256# define __cccl_lib_tuples_by_type 201304L257#endif // _LIBCUDACXX_STD_VER > 11258 259#if _LIBCUDACXX_STD_VER > 14260# if defined(_LIBCUDACXX_ADDRESSOF)261# define __cccl_lib_addressof_constexpr 201603L262# endif263// # define __cccl_lib_allocator_traits_is_always_equal 201411L264// # define __cccl_lib_any 201606L265# define __cccl_lib_apply 201603L266# define __cccl_lib_array_constexpr 201603L267# define __cccl_lib_as_const 201510L268# if !defined(_LIBCUDACXX_HAS_NO_THREADS)269# define __cccl_lib_atomic_is_always_lock_free 201603L270# endif271# define __cccl_lib_bind_front 201907L272# define __cccl_lib_bool_constant 201505L273// # define __cccl_lib_boyer_moore_searcher 201603L274# define __cccl_lib_byte 201603L275# define __cccl_lib_chrono 201611L276// # define __cccl_lib_clamp 201603L277// # define __cccl_lib_enable_shared_from_this 201603L278// # define __cccl_lib_execution 201603L279// # define __cccl_lib_filesystem 201703L280# define __cccl_lib_gcd_lcm 201606L281# define __cccl_lib_hardware_interference_size 201703L282# if defined(_LIBCUDACXX_HAS_UNIQUE_OBJECT_REPRESENTATIONS)283# define __cccl_lib_has_unique_object_representations 201606L284# endif285# define __cccl_lib_hypot 201603L286// # define __cccl_lib_incomplete_container_elements 201505L287# define __cccl_lib_invoke 201411L288# if !defined(_LIBCUDACXX_HAS_NO_IS_AGGREGATE)289# define __cccl_lib_is_aggregate 201703L290# endif291# define __cccl_lib_is_invocable 201703L292# define __cccl_lib_is_swappable 201603L293# define __cccl_lib_launder 201606L294# define __cccl_lib_logical_traits 201510L295# define __cccl_lib_make_from_tuple 201606L296// # define __cccl_lib_map_try_emplace 201411L297// # define __cccl_lib_math_special_functions 201603L298// # define __cccl_lib_memory_resource 201603L299// # define __cccl_lib_node_extract 201606L300// # define __cccl_lib_nonmember_container_access 201411L301# define __cccl_lib_not_fn 201603L302// # define __cccl_lib_parallel_algorithm 201603L303// # define __cccl_lib_raw_memory_algorithms 201606L304// # define __cccl_lib_sample 201603L305// # define __cccl_lib_scoped_lock 201703L306# if !defined(_LIBCUDACXX_HAS_NO_THREADS)307// # define __cccl_lib_shared_mutex 201505L308# endif309// # define __cccl_lib_shared_ptr_arrays 201611L310// # define __cccl_lib_shared_ptr_weak_type 201606L311// # define __cccl_lib_string_view 201606L312// # define __cccl_lib_to_chars 201611L313# define __cccl_lib_type_trait_variable_templates 201510L314# define __cccl_lib_uncaught_exceptions 201411L315# define __cccl_lib_unordered_map_try_emplace 201411L316# define __cccl_lib_variant 201606L317# define __cccl_lib_void_t 201411L318#endif // _LIBCUDACXX_STD_VER > 14319 320#if _LIBCUDACXX_STD_VER > 17321# undef __cccl_lib_array_constexpr322# define __cccl_lib_array_constexpr 201811L323// # define __cccl_lib_assume_aligned 201811L324# define __cccl_lib_atomic_flag_test 201907L325# define __cccl_lib_atomic_float 201711L326# define __cccl_lib_atomic_lock_free_type_aliases 201907L327# if !defined(_LIBCUDACXX_HAS_NO_THREADS)328# define __cccl_lib_atomic_ref 201806L329#endif330// # define __cccl_lib_atomic_shared_ptr 201711L331# define __cccl_lib_atomic_value_initialization 201911L332# if !defined(_LIBCUDACXX_AVAILABILITY_DISABLE_FTM___cpp_lib_atomic_wait)333# define __cccl_lib_atomic_wait 201907L334# endif335# if !defined(_LIBCUDACXX_HAS_NO_THREADS) && !defined(_LIBCUDACXX_AVAILABILITY_DISABLE_FTM___cpp_lib_barrier)336# define __cccl_lib_barrier 201907L337# endif338# define __cccl_lib_bit_cast 201806L339# define __cccl_lib_bitops 201907L340# define __cccl_lib_bounded_array_traits 201902L341# if !defined(_LIBCUDACXX_NO_HAS_CHAR8_T)342# define __cccl_lib_char8_t 201811L343# endif344// # define __cccl_lib_constexpr_algorithms 201806L345// # define __cccl_lib_constexpr_dynamic_alloc 201907L346# define __cccl_lib_constexpr_functional 201907L347// # define __cccl_lib_constexpr_iterator 201811L348// # define __cccl_lib_constexpr_memory 201811L349// # define __cccl_lib_constexpr_misc 201811L350// # define __cccl_lib_constexpr_numeric 201911L351// # define __cccl_lib_constexpr_string 201907L352// # define __cccl_lib_constexpr_string_view 201811L353// # define __cccl_lib_constexpr_swap_algorithms 201806L354// # define __cccl_lib_constexpr_tuple 201811L355// # define __cccl_lib_constexpr_utility 201811L356// # define __cccl_lib_constexpr_vector 201907L357// # define __cccl_lib_coroutine 201902L358# if _LIBCUDACXX_STD_VER > 17 && defined(__cpp_impl_destroying_delete) && __cpp_impl_destroying_delete >= 201806L359# define __cccl_lib_destroying_delete 201806L360# endif361// # define __cccl_lib_endian 201907L362// # define __cccl_lib_erase_if 201811L363// # undef __cccl_lib_execution364// # define __cccl_lib_execution 201902L365# if !defined(_LIBCUDACXX_AVAILABILITY_DISABLE_FTM___cpp_lib_format) && !defined(_LIBCUDACXX_HAS_NO_INCOMPLETE_FORMAT)366// # define __cccl_lib_format 202106L367# endif368// # define __cccl_lib_generic_unordered_lookup 201811L369// # define __cccl_lib_int_pow2 202002L370// # define __cccl_lib_integer_comparison_functions 202002L371// # define __cccl_lib_interpolate 201902L372# if defined(_LIBCUDACXX_IS_CONSTANT_EVALUATED)373# define __cccl_lib_is_constant_evaluated 201811L374# endif375// # define __cccl_lib_is_layout_compatible 201907L376# define __cccl_lib_is_nothrow_convertible 201806L377// # define __cccl_lib_is_pointer_interconvertible 201907L378# if !defined(_LIBCUDACXX_HAS_NO_THREADS)379// # define __cccl_lib_jthread 201911L380# endif381# if !defined(_LIBCUDACXX_HAS_NO_THREADS) && !defined(_LIBCUDACXX_AVAILABILITY_DISABLE_FTM___cpp_lib_latch)382// # define __cccl_lib_latch 201907L383# endif384// # define __cccl_lib_list_remove_return_type 201806L385// # define __cccl_lib_math_constants 201907L386// # define __cccl_lib_polymorphic_allocator 201902L387// # define __cccl_lib_ranges 201811L388// # define __cccl_lib_remove_cvref 201711L389# if !defined(_LIBCUDACXX_HAS_NO_THREADS) && !defined(_LIBCUDACXX_AVAILABILITY_DISABLE_FTM___cpp_lib_semaphore)390// # define __cccl_lib_semaphore 201907L391# endif392// # undef __cccl_lib_shared_ptr_arrays393// # define __cccl_lib_shared_ptr_arrays 201707L394// # define __cccl_lib_shift 201806L395// # define __cccl_lib_smart_ptr_for_overwrite 202002L396// # define __cccl_lib_source_location 201907L397// # define __cccl_lib_ssize 201902L398// # define __cccl_lib_starts_ends_with 201711L399// # undef __cccl_lib_string_view400// # define __cccl_lib_string_view 201803L401// # define __cccl_lib_syncbuf 201803L402// # define __cccl_lib_three_way_comparison 201907L403// # define __cccl_lib_to_address 201711L404// # define __cccl_lib_to_array 201907L405// # define __cccl_lib_type_identity 201806L406# define __cccl_lib_unwrap_ref 201811L407#endif // _LIBCUDACXX_STD_VER > 17408 409#if _LIBCUDACXX_STD_VER > 20410// # define __cccl_lib_adaptor_iterator_pair_constructor 202106L411// # define __cccl_lib_allocate_at_least 202106L412// # define __cccl_lib_associative_heterogeneous_erasure 202110L413// # define __cccl_lib_bind_back 202202L414// # define __cccl_lib_byteswap 202110L415// # define __cccl_lib_constexpr_bitset 202207L416// # define __cccl_lib_constexpr_charconv 202207L417// # define __cccl_lib_constexpr_cmath 202202L418// # undef __cccl_lib_constexpr_memory419// # define __cccl_lib_constexpr_memory 202202L420// # define __cccl_lib_constexpr_typeinfo 202106L421# define __cccl_lib_forward_like 202207L422// # define __cccl_lib_invoke_r 202106L423# define __cccl_lib_is_scoped_enum 202011L424// # define __cccl_lib_move_only_function 202110L425// # define __cccl_lib_out_ptr 202106L426// # define __cccl_lib_ranges_chunk 202202L427// # define __cccl_lib_ranges_chunk_by 202202L428// # define __cccl_lib_ranges_iota 202202L429// # define __cccl_lib_ranges_join_with 202202L430// # define __cccl_lib_ranges_slide 202202L431// # define __cccl_lib_ranges_starts_ends_with 202106L432// # define __cccl_lib_ranges_to_container 202202L433// # define __cccl_lib_ranges_zip 202110L434// # define __cccl_lib_reference_from_temporary 202202L435// # define __cccl_lib_spanstream 202106L436// # define __cccl_lib_stacktrace 202011L437// # define __cccl_lib_stdatomic_h 202011L438// # define __cccl_lib_string_contains 202011L439// # define __cccl_lib_string_resize_and_overwrite 202110L440# define __cccl_lib_to_underlying 202102L441# define __cccl_lib_unreachable 202202L442 443#endif // _LIBCUDACXX_STD_VER > 20444 445#ifndef __cuda_std__446#if _LIBCUDACXX_STD_VER > 11447# define __cpp_lib_chrono_udls __cccl_lib_chrono_udls448# define __cpp_lib_complex_udls __cccl_lib_complex_udls449#ifdef __cccl_lib_constexpr_complex450# define __cpp_lib_constexpr_complex __cccl_lib_constexpr_complex451#endif452# define __cpp_lib_concepts __cccl_lib_concepts453# define __cpp_lib_exchange_function __cccl_lib_exchange_function454# define __cpp_lib_expected __cccl_lib_expected455# define __cpp_lib_generic_associative_lookup 201304L456# define __cpp_lib_integer_sequence __cccl_lib_integer_sequence457# define __cpp_lib_integral_constant_callable __cccl_lib_integral_constant_callable458# define __cpp_lib_is_final __cccl_lib_is_final459# define __cpp_lib_is_null_pointer __cccl_lib_is_null_pointer460# define __cpp_lib_make_reverse_iterator __cccl_lib_make_reverse_iterator461# define __cpp_lib_make_unique 201304L462# define __cpp_lib_null_iterators __cccl_lib_null_iterators463# define __cpp_lib_quoted_string_io 201304L464# define __cpp_lib_result_of_sfinae __cccl_lib_result_of_sfinae465# define __cpp_lib_robust_nonmodifying_seq_ops __cccl_lib_robust_nonmodifying_seq_ops466# ifdef __cccl_lib_shared_timed_mutex467# define __cpp_lib_shared_timed_mutex 201402L468# endif469# define __cpp_lib_span __cccl_lib_span470# define __cpp_lib_string_udls 201304L471# define __cpp_lib_transformation_trait_aliases __cccl_lib_transformation_trait_aliases472# define __cpp_lib_transparent_operators __cccl_lib_transparent_operators473# define __cpp_lib_tuple_element_t __cccl_lib_tuple_element_t474# define __cpp_lib_tuples_by_type __cccl_lib_tuples_by_type475#endif // _LIBCUDACXX_STD_VER > 11476 477#if _LIBCUDACXX_STD_VER > 14478# ifdef __cccl_lib_addressof_constexpr479# define __cpp_lib_addressof_constexpr __cccl_lib_addressof_constexpr480# endif481# define __cpp_lib_allocator_traits_is_always_equal 201411L482# define __cpp_lib_any 201606L483# define __cpp_lib_apply __cccl_lib_apply484# define __cpp_lib_array_constexpr __cccl_lib_array_constexpr485# define __cpp_lib_as_const __cccl_lib_as_const486# ifdef __cccl_lib_atomic_is_always_lock_free487# define __cpp_lib_atomic_is_always_lock_free __cccl_lib_atomic_is_always_lock_free488# endif489# define __cpp_lib_bind_front __cccl_lib_bind_front490# define __cpp_lib_bool_constant __cccl_lib_bool_constant491// # define __cpp_lib_boyer_moore_searcher __cccl_lib_boyer_moore_searcher492# define __cpp_lib_byte __cccl_lib_byte493# define __cpp_lib_chrono __cccl_lib_chrono494# define __cpp_lib_clamp 201603L495# define __cpp_lib_enable_shared_from_this 201603L496// # define __cpp_lib_execution __cccl_lib_execution497# define __cpp_lib_filesystem 201703L498# define __cpp_lib_gcd_lcm __cccl_lib_gcd_lcm499# define __cpp_lib_hardware_interference_size __cccl_lib_hardware_interference_size500# ifdef __cccl_lib_has_unique_object_representations501# define __cpp_lib_has_unique_object_representations __cccl_lib_has_unique_object_representations502# endif503# define __cpp_lib_hypot __cccl_lib_hypot504# define __cpp_lib_incomplete_container_elements 201505L505# define __cpp_lib_invoke __cccl_lib_invoke506# ifdef __cccl_lib_is_aggregate507# define __cpp_lib_is_aggregate __cccl_lib_is_aggregate508# endif509# define __cpp_lib_is_invocable __cccl_lib_is_invocable510# define __cpp_lib_is_swappable __cccl_lib_is_swappable511# define __cpp_lib_launder __cccl_lib_launder512# define __cpp_lib_logical_traits __cccl_lib_logical_traits513# define __cpp_lib_make_from_tuple __cccl_lib_make_from_tuple514# define __cpp_lib_map_try_emplace 201411L515// # define __cpp_lib_math_special_functions __cccl_lib_math_special_functions516// # define __cpp_lib_memory_resource __cccl_lib_memory_resource517# define __cpp_lib_node_extract 201606L518# define __cpp_lib_nonmember_container_access 201411L519# define __cpp_lib_not_fn __cccl_lib_not_fn520# define __cpp_lib_optional __cccl_lib_optional521// # define __cpp_lib_parallel_algorithm __cccl_lib_parallel_algorithm522# define __cpp_lib_raw_memory_algorithms 201606L523# define __cpp_lib_sample 201603L524# define __cpp_lib_scoped_lock 201703L525# ifdef __cccl_lib_shared_mutex526# define __cpp_lib_shared_mutex 201505L527# endif528// # define __cpp_lib_shared_ptr_arrays __cccl_lib_shared_ptr_arrays529# define __cpp_lib_shared_ptr_weak_type 201606L530# define __cpp_lib_string_view 201606L531// # define __cpp_lib_to_chars __cccl_lib_to_chars532# define __cpp_lib_type_trait_variable_templates __cccl_lib_type_trait_variable_templates533# define __cpp_lib_uncaught_exceptions __cccl_lib_uncaught_exceptions534# define __cpp_lib_unordered_map_try_emplace __cccl_lib_unordered_map_try_emplace535# define __cpp_lib_variant __cccl_lib_variant536# define __cpp_lib_void_t __cccl_lib_void_t537#endif // _LIBCUDACXX_STD_VER > 14538 539#if _LIBCUDACXX_STD_VER > 17540// # undef __cpp_lib_array_constexpr541// # define __cpp_lib_array_constexpr __cccl_lib_array_constexpr542// # define __cpp_lib_assume_aligned __cccl_lib_assume_aligned543// # define __cpp_lib_atomic_flag_test __cccl_lib_atomic_flag_test544// # define __cpp_lib_atomic_float __cccl_lib_atomic_float545// # define __cpp_lib_atomic_lock_free_type_aliases __cccl_lib_atomic_lock_free_type_aliases546# ifdef __cccl_lib_atomic_ref547# define __cpp_lib_atomic_ref __cccl_lib_atomic_ref548#endif549// # define __cpp_lib_atomic_shared_ptr __cccl_lib_atomic_shared_ptr550// # define __cpp_lib_atomic_value_initialization __cccl_lib_atomic_value_initialization551# ifdef __cccl_lib_atomic_wait552// # define __cpp_lib_atomic_wait __cccl_lib_atomic_wait553# endif554# if !defined(_LIBCUDACXX_HAS_NO_THREADS) && !defined(_LIBCUDACXX_AVAILABILITY_DISABLE_FTM___cpp_lib_barrier)555# define __cpp_lib_barrier __cccl_lib_barrier556# endif557// # define __cpp_lib_bit_cast __cccl_lib_bit_cast558// # define __cpp_lib_bitops __cccl_lib_bitops559// # define __cpp_lib_bounded_array_traits __cccl_lib_bounded_array_traits560# ifdef __cccl_lib_char8_t561# define __cpp_lib_char8_t __cccl_lib_char8_t562# endif563// # define __cpp_lib_constexpr_algorithms __cccl_lib_constexpr_algorithms564// # define __cpp_lib_constexpr_dynamic_alloc __cccl_lib_constexpr_dynamic_alloc565// # define __cpp_lib_constexpr_functional __cccl_lib_constexpr_functional566// # define __cpp_lib_constexpr_iterator __cccl_lib_constexpr_iterator567// # define __cpp_lib_constexpr_memory __cccl_lib_constexpr_memory568// # define __cpp_lib_constexpr_misc __cccl_lib_constexpr_misc569// # define __cpp_lib_constexpr_numeric __cccl_lib_constexpr_numeric570// # define __cpp_lib_constexpr_string __cccl_lib_constexpr_string571// # define __cpp_lib_constexpr_string_view __cccl_lib_constexpr_string_view572// # define __cpp_lib_constexpr_swap_algorithms __cccl_lib_constexpr_swap_algorithms573// # define __cpp_lib_constexpr_tuple __cccl_lib_constexpr_tuple574// # define __cpp_lib_constexpr_utility __cccl_lib_constexpr_utility575// # define __cpp_lib_constexpr_vector __cccl_lib_constexpr_vector576// # define __cpp_lib_coroutine __cccl_lib_coroutine577# ifdef __cccl_lib_destroying_delete578# define __cpp_lib_destroying_delete __cccl_lib_destroying_delete579# endif580// # define __cpp_lib_endian __cccl_lib_endian581# define __cpp_lib_erase_if 201811L582// # undef __cpp_lib_execution583// # define __cpp_lib_execution __cccl_lib_execution584# ifdef __cccl_lib_format585// # define __cpp_lib_format __cccl_lib_format586# endif587// # define __cpp_lib_generic_unordered_lookup __cccl_lib_generic_unordered_lookup588// # define __cpp_lib_int_pow2 202002L589# define __cpp_lib_integer_comparison_functions 202002L590# define __cpp_lib_interpolate 201902L591# ifdef __cccl_lib_is_constant_evaluated592# define __cpp_lib_is_constant_evaluated __cccl_lib_is_constant_evaluated593# endif594// # define __cpp_lib_is_layout_compatible __cccl_lib_is_layout_compatible595# define __cpp_lib_is_nothrow_convertible __cccl_lib_is_nothrow_convertible596// # define __cpp_lib_is_pointer_interconvertible __cccl_lib_is_pointer_interconvertible597# ifdef __cccl_lib_jthread598# define __cpp_lib_jthread __cccl_lib_jthread599# endif600# ifdef __cccl_lib_latch601# define __cpp_lib_latch __cccl_lib_latch602# endif603// # define __cpp_lib_list_remove_return_type __cccl_lib_list_remove_return_type604// # define __cpp_lib_math_constants __cccl_lib_math_constants605// # define __cpp_lib_polymorphic_allocator __cccl_lib_polymorphic_allocator606// # define __cpp_lib_ranges __cccl_lib_ranges607// # define __cpp_lib_remove_cvref __cccl_lib_remove_cvref608# ifdef __cccl_lib_semaphore609# define __cpp_lib_semaphore __cccl_lib_semaphore610# endif611// # undef __cpp_lib_shared_ptr_arrays612// # define __cpp_lib_shared_ptr_arrays __cccl_lib_shared_ptr_arrays613// # define __cpp_lib_shift __cccl_lib_shift614// # define __cpp_lib_smart_ptr_for_overwrite __cccl_lib_smart_ptr_for_overwrite615// # define __cpp_lib_source_location __cccl_lib_source_location616// # define __cpp_lib_ssize __cccl_lib_ssize617// # define __cpp_lib_starts_ends_with __cccl_lib_starts_ends_with618// # undef __cpp_lib_string_view619// # define __cpp_lib_string_view __cccl_lib_string_view620// # define __cpp_lib_syncbuf __cccl_lib_syncbuf621// # define __cpp_lib_three_way_comparison __cccl_lib_three_way_comparison622// # define __cpp_lib_to_address __cccl_lib_to_address623// # define __cpp_lib_to_array __cccl_lib_to_array624// # define __cpp_lib_type_identity __cccl_lib_type_identity625# define __cpp_lib_unwrap_ref __cccl_lib_unwrap_ref626#endif // _LIBCUDACXX_STD_VER > 17627 628#if _LIBCUDACXX_STD_VER > 20629// # define __cpp_lib_adaptor_iterator_pair_constructor __cccl_lib_adaptor_iterator_pair_constructor630// # define __cpp_lib_allocate_at_least __cccl_lib_allocate_at_least631// # define __cpp_lib_associative_heterogeneous_erasure __cccl_lib_associative_heterogeneous_erasure632// # define __cpp_lib_bind_back __cccl_lib_bind_back633// # define __cpp_lib_byteswap __cccl_lib_byteswap634// # define __cpp_lib_constexpr_bitset __cccl_lib_constexpr_bitset635// # define __cpp_lib_constexpr_charconv __cccl_lib_constexpr_charconv636// # define __cpp_lib_constexpr_cmath __cccl_lib_constexpr_cmath637// # undef __cpp_lib_constexpr_memory638// # define __cpp_lib_constexpr_memory __cccl_lib_constexpr_memory639// # define __cpp_lib_constexpr_typeinfo __cccl_lib_constexpr_typeinfo640# define __cpp_lib_forward_like __cccl_lib_forward_like641// # define __cpp_lib_invoke_r __cccl_lib_invoke_r642# define __cpp_lib_is_scoped_enum __cccl_lib_is_scoped_enum643// # define __cpp_lib_move_only_function __cccl_lib_move_only_function644// # define __cpp_lib_out_ptr __cccl_lib_out_ptr645// # define __cpp_lib_ranges_chunk __cccl_lib_ranges_chunk646// # define __cpp_lib_ranges_chunk_by __cccl_lib_ranges_chunk_by647// # define __cpp_lib_ranges_iota __cccl_lib_ranges_iota648// # define __cpp_lib_ranges_join_with __cccl_lib_ranges_join_with649// # define __cpp_lib_ranges_slide __cccl_lib_ranges_slide650// # define __cpp_lib_ranges_starts_ends_with __cccl_lib_ranges_starts_ends_with651// # define __cpp_lib_ranges_to_container __cccl_lib_ranges_to_container652// # define __cpp_lib_ranges_zip __cccl_lib_ranges_zip653// # define __cpp_lib_reference_from_temporary __cccl_lib_reference_from_temporary654// # define __cpp_lib_spanstream __cccl_lib_spanstream655// # define __cpp_lib_stacktrace __cccl_lib_stacktrace656// # define __cpp_lib_stdatomic_h __cccl_lib_stdatomic_h657// # define __cpp_lib_string_contains __cccl_lib_string_contains658// # define __cpp_lib_string_resize_and_overwrite __cccl_lib_string_resize_and_overwrite659# define __cpp_lib_to_underlying __cccl_lib_to_underlying660# define __cpp_lib_unreachable __cccl_lib_unreachable661 662#endif // _LIBCUDACXX_STD_VER > 20663 664#endif // !__cuda_std__665 666#endif // _LIBCUDACXX_VERSIONH667 