これが可能な場合は、再帰なしで可変個引数テンプレートパラメータパックにインデックスを付けることができます。ただし、GCCはここで私の部分的な専門分野を取り上げることを拒否しています。
template <int I, typename List>
struct element_impl;
template <typename... TL, int... IL, typename T, int I, typename... TR, int... IR>
struct element_impl<I, typelist<pair<TL,IL>..., pair<T,I>, pair<TR,IR>...>> {
typedef T type;
};
prog.cpp:'
element<0, typelist<int, double, char, float, long int> >
'のインスタンス化:
prog.cpp:52:34:ここからインスタンス化
prog.cpp:47:79:エラー:不完全な型の無効な使用'struct element_impl<0, typelist<pair<int, 0>, pair<double, 1>, pair<char, 2>, pair<float, 3>, pair<long int, 4> >
'
GCCはバグがありますか、それとも可変個引数テンプレートの制限を無視していますか?