|
-
-
-
-
-
-
-
-
-
-
-
-
-
- #ifndef RANGES_V3_UTILITY_GET_HPP
- #define RANGES_V3_UTILITY_GET_HPP
-
- #include <meta/meta.hpp>
-
- #include <concepts/concepts.hpp>
-
- #include <range/v3/detail/adl_get.hpp>
-
- namespace ranges
- {
-
-
-
-
-
- namespace _get_
- {
-
-
- template<std::size_t I, typename TupleLike>
- constexpr auto CPP_auto_fun(get)(TupleLike &&t)
- (
- return detail::adl_get<I>(static_cast<TupleLike &&>(t))
- )
- template<typename T, typename TupleLike>
- constexpr auto CPP_auto_fun(get)(TupleLike &&t)
- (
- return detail::adl_get<T>(static_cast<TupleLike &&>(t))
- )
-
-
- template<typename T>
- T & get(meta::id_t<T> & value) noexcept
- {
- return value;
- }
- template<typename T>
- T const & get(meta::id_t<T> const & value) noexcept
- {
- return value;
- }
- template<typename T>
- T && get(meta::id_t<T> && value) noexcept
- {
- return static_cast<T &&>(value);
- }
-
- }
- using namespace _get_;
-
-
-
- }
-
- #endif
|