#include <iostream>
template <unsigned int i, unsigned int ...v> struct D { static constexpr unsigned int vale = 42; }; template <unsigned int i> struct Dummy { static constexpr unsigned int value = i; }; template <unsigned int ...moves> struct Foo { static constexpr unsigned int value = D<Dummy<moves>::value...>::value; }; int main() { std::cout << "Foo<3, 5, 6, 7>::value = " << Foo<3, 5, 6, 7>::value << std::endl; } |