c++函数模板转类模板,看看类模板的强大
元<元<类 B>类 G,类...T,类 A,整...I>
空 展开(序列<I...>,向量<A>&b){
((G<T>::动作(b[I])),...);
}//要用两个括号
元<元<类 B>类 F,类...T,类 A>
空 展开(向量<A>&b){
断大小<T...>(b);
展开<F,T...>(转序<T...>(),b);
}//展开向量.先给出T,这样好推断一些.
下面是函数模板转类模板宏.可进一步,增强能力:
#define 单参构(S,H,T)\
元<类 I>构 S{\
静 常式 空 动作(T&e){H<I>(e);}\
};
//单参模板,转为构,S作为模板参数.
//H为函数,e为参数.
//这里是单参,还可根据需要继续扩展.
使用时:
单参构(加一构,加一,串);//先定义宏,转成
//这是函数模板转类模板.
元<类...T>空 加(向量<串>&b){
展开<加一构,T...>(b);
}//如何展开向量?
然后,外部,就可调用加函数了.
示例
#include "向量针.cpp"
构 A{
串 呀;
~A(){}
};
构 B:公 A{};
构 C:公 A{};
构 D:公 A{};
空 主(){
向量<串>啊{"a","b","c","d"};
静 无映针<A>d;
d.加<A,B,C,D>(啊);
}
浙公网安备 33010602011771号