C++有点神奇的λ.

参考地址

#include <常用>
#define ID(x) []()常式{中 x;}<...>构 A{};<类 T>用 TT=推导(求值<T>()());
//求值,加个右值引用后的类型.
//这里就是(t())后返回值的类型

常式 整 长呀(常 符*s){
    中 s[0]==0?0:长呀(s+1)+1;
}<类 T>要求 是相同值<TT<T>,>
常式 动 g(T t){中 A<t()>{};}<类 T,...I>
常式 动 g0(T t,序列<I...>){
    中 A<t()[I]...>{};
}
//重要的是类型.<类 T>要求 是相同值<TT<T>,常 符*>
常式 动 g(T t){g0(t,转序<长呀(t())>());}
//主要是利用推导出来的类型.<类 K,类 V>构 M{<>静 V&取呀(){//用的是`静态变量<类>`
        静 V v;中 v;
    }//其中f()可转换为K类型.<类 F>静 V&(F f){
        中 取呀<推导(g(f))>();
    }//每一个的类型不一样.
};

用 T=M<,>;f(){
    打印(T::(ID("acd")));
    打印(T::(ID("abc")));
}
空 主(){
    T::(ID("abc"))=20;
    T::(ID("acd"))=10;
    f();
}

posted @ 2022-02-07 21:29  zjh6  阅读(46)  评论(0)    收藏  举报  来源