我有一個模板類5模板參數看起來類似於這個。c + +模板與typedef多個參數?
SomeClass.h
template < typename A, typename B, typename C, typename D >
class SomeClass
{
private:
A a_obj;
B b_obj;
C c_obj;
D d_obj;
public:
void someoperationA();
void someoperationB();
void someoperationC();
};
SomeClass.cpp
template < typename A, typename B, typename C, typename D >
SomeClass<A, B, C, D>::someoperationA()
{
A::someStaticMethods();
}
template < typename A, typename B, typename C, typename D >
SomeClass<A, B, C, D>::someoperationB()
{}
template < typename A, typename B, typename C, typename D >
SomeClass<A, B, C, D>::someoperationC()
{}
考慮在我的模板參數應給予像
SomeClass.cpp
template <
typename ABIGCLASSNAME,
typename BBIGCLASSNAME,
typename CBIGCLASSNAME,
typename DBIGCLASSNAME
>
SomeClass<ABIGCLASSNAME,
BBIGCLASSNAME,
CBIGCLASSNAME,
DBIGCLASSNAME>::someoperationA()
{
ABIGCLASSNAME::someStaticMethods();
}
一些好的大牌的情況下
這肯定開始面色難看:(
所以是有可能的typedef模板參數以任何方式,使其可讀...像
typedef template < typename ABIGCLASSNAME, typename BBIGCLASSNAME, typename CBIGCLASSNAME, typename DBIGCLASSNAME > TEMP_WITH_PARAMS
和東西simliar該類比其他#define
我應該學會不給這樣的明確的「沒有沒有」的答案。 :)。我喜歡你的解決方案。 – bolov
** + 1 **或者,可能只需使用'template SomeClassImpl {...};'和'使用LongNameA = typename std :: tuple_element <0,std :: tuple > :type;'內部到upack。 –
lapk