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>();
}
posted @ 2022-02-01 17:01  zjh6  阅读(26)  评论(0)    收藏  举报  来源