Program Listing for File tuple_index.hpp¶
↰ Return to documentation for file (include/uitsl/meta/tuple_index.hpp)
#pragma once
#ifndef UITSL_META_TUPLE_INDEX_HPP_INCLUDE
#define UITSL_META_TUPLE_INDEX_HPP_INCLUDE
#include <type_traits>
namespace uitsl {
// adapted from https://stackoverflow.com/a/18063608
template <class T, class Tuple>
struct tuple_index;
template <class T, class... Types>
struct tuple_index<T, std::tuple<T, Types...>> {
static constexpr std::size_t value = 0;
};
template <class T, class U, class... Types>
struct tuple_index<T, std::tuple<U, Types...>> {
static constexpr std::size_t value =
1 + tuple_index<T, std::tuple<Types...>>::value;
};
} // namespace uitsl
#endif // #ifndef UITSL_META_TUPLE_INDEX_HPP_INCLUDE