运行时转编译时应用.多个类型统一调用.获取变量前的类型

<类 F,...I>
常式 动 切换啊(整 n,F&&f,序列<I...>){
    ((n==I&&(f(整常<,I>()),0)),...);
    //&&与(..,0)这样就是a&&b,
    //b为0的表达式,所以必须要有0,这里反正能用就行
}<整 I,类 F>常式 动 切为编(整 n,F&f){
    型名 造序<I>::型 p;中 切换啊(n,f,p);
};

示例:

#include <变量>
#include "运转编.cpp"

构 啊{
    极 要(){
        中 真;
    }
    整 打(){
        打印("啊");3;
    }
};
构 呀{
    极 要(){
        中 假;
    }
    整 打(){
        打印("呀");4;
    }
};
用 T=变量<,>;
 
//用可变模板是不行的
//主要是,一个下,与一个中,麻烦.
空 主(){//向量是同一类型的,元组是不同类型的
    啊 a;呀 b;向量<T>{a,b};整 i=0;极 要下=0;
    常式 整 I=变量大小值<T>;(&t:){//i与过的顺序要匹配
        切为编<I>(i,[&](动 i){//f取上下文
            常式 整 N=推导(i)::;静 动 g=<N>(t);(!g.()){要下=1;;}
            g.();
        });
        i++;(要下);异 断;
    }//只要一个.i给出类型,主要就是这个<下>
}//

这里最关键就是这个要下,想半天都搞不出来

posted @ 2020-05-13 15:57  zjh6  阅读(16)  评论(0)    收藏  举报  来源