c++实现可调用

#include <常用><型名 T,型名...O>
用 _调用=推导(求值<T>()(求值<O>()...));<型名 T,型名...O>
用 可调用=型名 探测器<,_调用,T,O...>::;

空 测试(){}
空 测试2(){}
//如果这里`测试2改为测试`,推导是推导不出来的,
//因为`他不知道`是哪个`测试`,这不是`函数重载`.

空 主(){
    打印(是可<推导(测试),>::);
    打印(是可<推导(测试2)>::);
}

注意用法:要加上推导,同时两个测试不能同名,同名就冲突了.这也是为什么开始的时候编译不过的原因.
探测器在这里

posted @ 2020-11-18 21:50  zjh6  阅读(13)  评论(0)    收藏  举报  来源