あなたがindex_range
を定義された方法は、答えは単純です:非常に有用ではありません
template<std::size_t Min, std::size_t Max>
using make_index_range = index_range<Min, Max>;
。だから、
私はあなたがこのように行うことができますindex_sequence<5, 6, 7, 8>
を与えるmake_index_range<5, 9>
を意味と仮定するつもりです:
#include <utility>
template<std::size_t N, std::size_t... Seq>
constexpr std::index_sequence<N + Seq ...>
add(std::index_sequence<Seq...>)
{ return {}; }
template<std::size_t Min, std::size_t Max>
using make_index_range = decltype(add<Min>(make_index_sequence<Max-Min>()));
それとも、クラステンプレートであることをmake_index_range
をしたい場合は、上記のようにして、add
を定義します。
template<std::size_t Min, std::size_t Max>
struct make_index_range {
using type = decltype(add<Min>(make_index_sequence<Max-Min>()));
};
(しかし、これであなたはとてもエイリアステンプレートは、おそらく優れている、そしてどのようにmake_index_sequence
作品に近いmake_index_range<5, 9>::type
を使用する必要があります。)