5
如果將以下代碼中的X
轉換爲使用C++ 11變量模板,並且應該支持任意數量的模板參數,那該怎麼辦?將變異模板鏈接在一起
template<int OFFSET>
struct A { enum O { offset = OFFSET }; enum S { size = 2 }; };
template<int OFFSET>
struct B { enum O { offset = OFFSET }; enum S { size = 4 }; };
template<int OFFSET>
struct C { enum O { offset = OFFSET }; enum S { size = 10 }; };
template < template <int> class B0,
template <int> class B1,
template <int> class B2 >
struct X : public B0<1>,
B1<B0<1>::size * B0<1>::offset >,
B2< B1<B0<1>::size * B0<1>::offset >::size *
B1<B0<1>::size * B0<1>::offset >::offset >
{ };
int main(int argc, const char *argv[])
{
X<A, B, C> x;
return 0;
}
有一些細節丟失,你傳遞'參數數量...''到,但X_helper',預計第一個參數是'int'。 – SirGuy 2016-07-05 20:13:18
你是絕對正確的,謝謝:) – filmor 2016-07-06 10:09:14