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

上门做指甲哪个网站做外贸的经常浏览的三个网站

上门做指甲哪个网站,做外贸的经常浏览的三个网站,网站制作公司费用,广州模板建站哪家好这个系列主要记录C模板元编程的常用语法 文章目录 引言语法应用函数模板可变参数的打印可变参数的最小/最大函数 类模板 参考文献 引言 在C11之前#xff0c;函数模板和类模板只支持含有固定数量的模板参数。C11增强了模板功能#xff0c;允许模板定义中包含任意个(包括0个)… 这个系列主要记录C模板元编程的常用语法 文章目录 引言语法应用函数模板可变参数的打印可变参数的最小/最大函数 类模板 参考文献 引言 在C11之前函数模板和类模板只支持含有固定数量的模板参数。C11增强了模板功能允许模板定义中包含任意个(包括0个)模板参数即可变参数模板。 语法 templatetypename... Types其中 ... 可接纳的模板参数0。 如果不希望产生模板参数个数为0的变长参数模板则可以采用以下定义 templatetypename Head, typename... Tail由于多了Head类型该模板必须有一个及以上的模板参数。 应用 函数模板 可变参数的打印 函数模板中一种常见的使用可变参数模板的场景是以递归的方式取出可用参数 #include iostreamvoid print() {}templatetypename T, typename... Types void print(const T firstArg, const Types... args) {std::cout firstArg sizeof...(args) std::endl;print(args...); }template typename... Types void print(const Types... args) {std::cout print(...) std::endl; }int main(int argc, char* argv[]) {print(3.0f, hello world, 10);return 0; }上面例子表示我们想要输出一个单精度浮点值字符串整型值 上面的 void print() {} 代表模板递归的终止。print(args...) 展开参数向下模板递归。sizeof...(args) 得到参数的个数。 最终输出为 考虑如下情况如果除了有上面的模板我们还定义了一个完全泛化的模板 template typename... Types void print(const Types... args) {std::cout print(...) std::endl; }那么输出结果是怎么样的 答案是还是输出上面的值这是因为编译器对于偏泛化和偏特化都满足的情况会选择偏特化的模板。 可变参数的最小/最大函数 有时我们想得到可变参数的最小/最大函数可以如下实现 #include iostreamtemplate typename T T m_min(T value) {return value; }template typename T, typename... Types T m_min(T value, Types... args) {return std::min(value, m_min(args...)); }int main(int argc, char *argv[]) {std::cout my_min(4, 3, 1, 2) std::endl;return 0; } 类模板 可变参数模板也可以用于类模板中比如STL中的tuple #include iostreamtemplatetypename... Values class tuple; template class tuple {};templatetypename Head, typename... Tail class tupleHead, Tail...: private tupleTail... {typedef tupleTail... inherited; public:tuple() {}tuple(Head v, Tail... vtail) : m_head(v), inherited(vtail...) {}Head head() { return m_head; }inherited tail() { return *this; } protected:Head m_head; };int main(int argc, char* argv[]) {tuplefloat, std::string, int t(3.0f, hello world, 10);std::cout t.head() t.tail().head() t.tail().tail().head() std::endl;return 0; }通过可变参数模板实现递归继承根基类为 template class{}父类成员在内存中位于子类成员之前。 这里的输出为 参考文献 【C】C11可变参数模板函数模板、类模板
http://www.hkea.cn/news/14560869/

相关文章:

  • 泰坦科技网站建设19寸 网站做多大
  • 网站开发认证考试重庆做手机网站建设
  • 网站设计制作厂家有哪些joomla做的网站
  • 做网站和做阿里巴巴wordpress多级tree分类目录
  • 网站的建设目标有哪些小程序图片素材库
  • asp.net 4.0网站开...做公司网站麻烦吗
  • 动态ip建网站wordpress+360友链
  • 做网站须知WordPress 5.0升级
  • 虚拟机怎么做网站wordpress单页导航模版
  • 深圳市交易建设工程交易服务中心网站seo百度站长工具查询
  • 泰兴做网站电话网页设计与制作相关书籍
  • 聊城手机网站制作专业做网站建设制作服务
  • 国家示范校建设专题网站工商网站备案办法
  • 如何建设一个博客网站教育网站建设备案
  • php 家政网站ps切片工具做网站
  • 湖北省住房和建设厅官方网站企业网站怎么制作流程
  • 500元制作网站asp 网站数据库连接错误
  • 网站建设培训网站天辰建设网
  • 海报在线制作网站dz网站模板 首页显示内容
  • 个人网站转为企业网站石碣网站建设
  • 网站地图1 500 怎么做百度服务中心电话
  • 做取名的网站很赚钱吗模特公司网站模板
  • 网站开发项目总结昆明软件开发培训
  • 企业网站制作是什么设计本子封面
  • 两个域名同时指向一个网站阿里云建网站流程
  • 广州网站建设厂家百度竞价排名官网
  • vpn网站模板茂名手机网站建设公司
  • 新建网站如何推广湖人最新消息
  • 网站如何安装wordpress电子商务网站建设研究
  • 江西旺达建设工程有限公司网站软件工程就业方向和前景