我想定義一個類,它接受一個非類型參數列表,可能包含不同類型的參數。例如,下面應該是有效的:C++ variadic模板,具有不同類型的非類型參數
Test<3, 4.5, 6> t;
如果所有參數具有相同的類型,說int
,我可以用如下的定義:
template<int... args>
class Test {
// ...
};
更具體地講,在我的具體使用如果有第二類Base
與多個成員,並且我想通過Base
成員指針。
Test<&Base::a, &Base::b>
如果Base::a
和Base::b
有一個共同的類型T
,那麼我可以定義Test
如下。
template<int Base::* ...args>
class Test {
//
};
我該怎麼去定義這樣的類Test
?
那麼究竟是什麼問題? – iavr
我認爲你可以得到的最好的東西是使用'std :: integral_constant'或類似的東西,並使用一組類型的模板參數。然後可以使用宏來減少鍋爐位置,例如:#define C_MEM_FUN(X)std :: integral_constant'然後'Test ' –
dyp
我認爲'template '應該是'template '。 –
Constructor