File indexing completed on 2025-12-16 10:28:01
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013 #ifndef RANGES_V3_UTILITY_TAGGED_TUPLE_HPP
0014 #define RANGES_V3_UTILITY_TAGGED_TUPLE_HPP
0015
0016 #include <tuple>
0017
0018 #include <range/v3/range_fwd.hpp>
0019
0020 #include <range/v3/utility/tagged_pair.hpp>
0021
0022 #include <range/v3/detail/prologue.hpp>
0023
0024 RANGES_DIAGNOSTIC_PUSH
0025 RANGES_DIAGNOSTIC_IGNORE_DEPRECATED_DECLARATIONS
0026
0027 namespace ranges
0028 {
0029 template<typename... Ts>
0030 using tagged_tuple RANGES_DEPRECATED("ranges::tagged_tuple is deprecated.") =
0031 tagged<std::tuple<detail::tag_elem<Ts>...>, detail::tag_spec<Ts>...>;
0032
0033 template<typename... Tags, typename... Ts>
0034 RANGES_DEPRECATED("ranges::make_tagged_tuple is deprecated.")
0035 constexpr tagged_tuple<Tags(bind_element_t<Ts>)...> make_tagged_tuple(Ts &&... ts)
0036 {
0037 return tagged_tuple<Tags(bind_element_t<Ts>)...>{static_cast<Ts &&>(ts)...};
0038 }
0039 }
0040
0041 RANGES_DIAGNOSTIC_POP
0042
0043 #include <range/v3/detail/epilogue.hpp>
0044
0045 #endif