util.hΒΆ

// Copyright (C) 2017, 2019, 2022 by Mark Melton
//

#ifndef CORE_TUPLE_UTIL_H
#define CORE_TUPLE_UTIL_H

#include <tuple>
#include <functional>

namespace core::tp {

// nth -- Helper template for computing type of nth parameter pack
// element.
template<size_t N, typename... Ts>
using nth = typename std::tuple_element<N, std::tuple<Ts...>>::type;

// make_tuple_index -- Helper template for computing indices
// corresponding to a tuple.
//
template<typename T>
using make_tuple_index = std::make_index_sequence<std::tuple_size<T>::value>;

}; // tp

#endif