C++:省略号和可变参数模板

简介

本文介绍如何将省略号 (… 与 c + + 可变参数模板) 。 省略号在 C 和 c + + 中具有许多用途。 其中包括函数的变量参数列表。 printf()C 运行时库中的函数是一个最常见的示例。

可变参数模板 是支持任意数量的参数的类或函数模板。 此机制对 c + + 库开发人员特别有用,因为您可以将其应用于类模板和函数模板,从而提供各种类型安全且不重要的功能和灵活性。

语法

可变参数模板通过两种方式使用省略号。 参数名称的左侧表示 参数包,参数名称的右侧将参数包扩展为多个单独的名称。

下面是 可变参数模板类 定义语法的基本示例:

template<typename... Arguments> class classname;

对于参数包和扩展,您可根据您的偏好在省略号周围添加空白,如以下这些示例所示:

template<typename ...Arguments> class classname;

或者这个:

template<typename ... Arguments> class classname;

请注意,本文使用第一个示例中显示的约定, (省略号附加到 typename) 。

在前面的示例中, 参数 是参数包。 类 classname 可以接受数量可变的自变量,如以下示例中所示:

template<typename... Arguments> class vtclass;

vtclass< > vtinstance1;
vtclass<int> vtinstance2;
vtclass<float, bool> vtinstance3;
vtclass<long, std::vector<int>, std::string> vtinstance4;

使用可变参数模板类定义时,还可以至少要求一个参数:

template <typename First
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值