当前位置: 首页 > wzjs >正文

个人网站怎么制作网站被墙 怎么做301

个人网站怎么制作,网站被墙 怎么做301,wordpress服务器带宽,网站后台无法更新缓存C 模板参数展开一、获取可变参数大小二、通过模版循环继承的方式来展开可变参数三、改用Using去实现循环继承一、获取可变参数大小 背景&#xff1a; FLen<int, char, long> Len; 我想要获取模板参数类型的总大小 template<typename T,typename ...ParamTypes> c…

C++ 模板参数展开

  • 一、获取可变参数大小
  • 二、通过模版循环继承的方式来展开可变参数
  • 三、改用Using去实现循环继承


一、获取可变参数大小

背景:
FLen<int, char, long> Len;
我想要获取模板参数类型的总大小

template<typename T,typename ...ParamTypes>
class FLen
{
public:enum{Number = FLen<T>::Number + FLen<ParamTypes...>::Number};
};template<typename Last>
class FLen<Last>
{
public:enum{Number = sizeof(Last)};
};

思想还是类似递归调用的思想,只是递归的不是函数而是模板

int main()
{FLen<int, char, long> Len;std::cout << Len.Number << std::endl;system("pause");return 0;
}

二、通过模版循环继承的方式来展开可变参数

最终目的是构建一个 TestIndex 类型,其模板参数是从0开始到N-1的整数序列。

template<int...>
struct TestIndex
{};template<int N,int...ParamTypes>
struct FSpawnIndex : FSpawnIndex<N - 1,N - 1,ParamTypes...>
{};template<int...ParamTypes>
struct FSpawnIndex<0,ParamTypes...>
{typedef TestIndex<ParamTypes...> Type;
};

解释一下原理和流程
起始:FSpawnIndex<3>(此时 N=3,参数包为空)
继承:FSpawnIndex<3> : FSpawnIndex<2,2>
在内部,参数包变为 2
下一步:FSpawnIndex<2,2> : FSpawnIndex<1,1,2>
参数包变为 1,2(注意:每次递归在参数包头部添加)
下一步:FSpawnIndex<1,1,2> : FSpawnIndex<0,0,1,2>
参数包变为 0,1,2
匹配终止条件:FSpawnIndex<0,0,1,2>
定义 Type 为 TestIndex<0,1,2>

int main()
{using TestType = FSpawnIndex<3>::Type;std::cout << typeid(TestType).name() << std::endl;system("pause");return 0;
}

三、改用Using去实现循环继承

template<int...>
struct TestIndex
{};template<int N,int...ParamTypes>
struct FSpawnIndex
{using Type = typename FSpawnIndex<N - 1, N - 1, ParamTypes...>::Type;//          ↑↑↑↑↑// 这个 typename 必不可少!
};template<int...ParamTypes>
struct FSpawnIndex<0, ParamTypes...>
{typedef TestIndex<ParamTypes...> Type;
};

在 C++ 模板元编程中,typename 关键字在这里起着​​关键作用​​,主要用于解决​​依赖名称的解析问题​​。

int main()
{using TestType = FSpawnIndex<3>::Type;std::cout << typeid(TestType).name() << std::endl;system("pause");return 0;
}

​​什么是依赖名称?​​
FSpawnIndex<N-1, …>::Type 是​​依赖于模板参数 N 和 ParamTypes… 的名称​​
编译器在解析模板时,无法确定 ::Type 是什么(可能是类型、静态成员或嵌套模板)

例如以下例子

// 情况分析:
struct FSpawnIndex</*...*/> {// 可能1:Type 是类型(typedef/using)typedef ... Type;// 可能2:Type 是静态成员static int Type;// 可能3:Type 是嵌套模板template<...> class Type;
};

文章转载自:

http://KCKjnqM5.sjjtz.cn
http://64LTrldf.sjjtz.cn
http://AMFydBH3.sjjtz.cn
http://vS2Kwlsj.sjjtz.cn
http://jK4Mifs4.sjjtz.cn
http://Kg7zylmZ.sjjtz.cn
http://teQ6kIrP.sjjtz.cn
http://P37Xg8h8.sjjtz.cn
http://RSaPYdfB.sjjtz.cn
http://rWjIBnQu.sjjtz.cn
http://FlMPHifv.sjjtz.cn
http://ovU2Ttvo.sjjtz.cn
http://rivm5mzI.sjjtz.cn
http://hAZoUHWV.sjjtz.cn
http://UZGK4IdB.sjjtz.cn
http://oAiEB6yk.sjjtz.cn
http://GyuoV0WZ.sjjtz.cn
http://8mwP1n5Y.sjjtz.cn
http://TkZK45Px.sjjtz.cn
http://ElZwlmkd.sjjtz.cn
http://vIzebLQD.sjjtz.cn
http://AnZuqz7r.sjjtz.cn
http://FF1GzB32.sjjtz.cn
http://OGyOdTv6.sjjtz.cn
http://D1mAaCG9.sjjtz.cn
http://jqTvmrRw.sjjtz.cn
http://KbjIPWKM.sjjtz.cn
http://aU5NaaVV.sjjtz.cn
http://iwK8vj3M.sjjtz.cn
http://ZFRNcvLu.sjjtz.cn
http://www.dtcms.com/wzjs/623530.html

相关文章:

  • 电子商务公司网站模版搜索seo优化
  • 热门网站小红书营销推广方式
  • 做ppt设计师哪个网站好seo工作职责
  • 网站建设服务器广州网站建设 .超凡科技
  • 永久开源的免费建站系统京东的电子网站建设
  • 石家庄新钥匙网站建设做网站动图的软件
  • 如何在word里做网站简述电子政务网站设计的技术
  • 购物网站源码企业咨询管理公司简介
  • 中国摄影网站有哪些网站建设站
  • 物流网站建设工作岗位小程序制作流程收费
  • 网站制作优化排名android小程序开发
  • 江苏网站建设推广网站制作推广需要多少钱
  • html网站设计论文网站的构建一般要多久
  • 成都医疗网站建设搜索电影免费观看播放
  • 网站插件开发网站建设i
  • 做网站公司价格多少你不会百度吗网页生成
  • 网站开发公司云鲸互创实惠自己做网站收费么
  • 做伊瑞尔竞技场的网站建网站自己做服务器
  • 网站seo内部优化产品宣传网站的重点
  • 请人建网站需要多少钱梦幻西游网页版
  • 常州语言网站建设卓拙科技做网站吗
  • 东莞建网站的公百度推广seo软件
  • 在百度上做个网站要多少钱it人才外包
  • 企业为什么要建站点呢wordpress热门文章代码
  • 张掖公司网站制作网站备案查询工信部app
  • 中企动力做网站一次性付款wordpress html编辑器
  • 网站开发是指公园网站建设方案 ppt模板
  • 一般网站建设用什么语言备案网站资料上传教程
  • 企业微网站建站四辩稿的套话模板
  • 建站方案策划书如何用使用好wordpress