私は次の操作を実行したい:パック展開中にconstexpr関数を使用するにはどうすればよいですか?
// have a constexpr function
template<class T>
constexpr T square(T const i)
{
return i * i;
}
// transform a std::integer_sequence<> by calling the constexpr function on every integer
template<class Fn, class T, T... values>
static constexpr auto make_type(Fn fn, std::integer_sequence<T, values...>)
{
return std::integer_sequence<T, fn(values)...>{};
}
// so that I can use it like so
using type = decltype(make_type(square, std::integer_sequence<int, 1, 2, 3>{}));
しかし、私は次のエラーを取得:
...\main.cpp|19|error: 'fn' is not a constant expression|