abraham_hilbert abraham_hilbert - 1 month ago 9
C++ Question

Generating a sequence of type T at compile time

I have the following problem:

template< typename callable, typename T , size_t... N_i>
void foo()
{
using callable_out_type = std::result_of_t< callable( /* T , ... , T <- sizeof...(N_i) many */ ) >;

// ...
}


I want to get the result type of
callable
which takes
sizeof...(N_i)
many arguments of the type
T
as its input, e.g.,
callable(1,2,3)
in case of
T==int
and
sizeof...(N_i)==3
. How can this be implemented?

Many thanks in advance.

Answer

Why not simply use:

using callable_out_type = std::result_of_t< callable( decltype(N_i, std::declval<T>())...) >;
Comments