1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
template<typename...A, int...B>
struct foo1:foo1<A..., (sizeof...(A)+B)...>
{
foo1() {
int x = sizeof...(A);
}
}
template<int...X> int bar1()
{
auto s = sizeof...(X);
chomp(X)...;
return X+...;
}
template<class R, typename...Args>
struct invoke1<R(fp*)(FArgs...)>
{
};
template < typename ... A , int ... B >
struct foo2 : foo2< A ... , ( sizeof ... ( A ) + B ) ... >
{
foo2() {
int x = sizeof ... ( A );
}
}
template < int ... X > int bar2()
{
auto s = sizeof ... ( X );
chomp( X ) ...;
return X + ...;
}
template < class R , typename ... Args >
struct invoke2 < R ( fp* ) ( FArgs ... ) >
{
};
|