关于c++11标准中可变模板的混淆
A confusion about variadic templates in c++11 standard
这两个函数之间有什么区别?
template <class ...Types> void f(Types... args...){}
template <class ...Types> void g(Types... args){}
f
与完全相同
template <class ...Types> void f(Types... args, ...){}
// ^^^^^
也就是说,它只是来自C的一个普通的旧变参数列表。由于历史原因,它可以在没有分离参数所需的常用,
的情况下使用。与g
的区别正是这个参数。
请注意,任何参数都不会传递到C风格的可变参数列表,因为C++风格的变参数将"吞下"所有参数。
相关文章:
- this_thread::sleep_for和计时时钟之间的关系是否由C++11标准指定
- 强枚举类型定义:Clang Bug 还是 C++11 标准不确定性?
- C++11 标准是否保证零值有符号整数的一元减号为零?
- 使用C++11标准的哪些规则来确定({..})中表达式的类型
- 在 C++11 标准中,为什么要依赖 char 类型实现?
- C++11 标准中的哪一部分规定了基元数据类型大小之间的相对顺序?
- 关于使用C 11标准编制C 98代码
- 即使明确指定了98个标准,GCC也使用C 11标准
- Visual Studio 2015 c++ 项目错误 c++11 标准
- C++14/17 项目可以使用使用 C++11 标准编译的二进制库还是需要重新编译源代码
- 由于 C++11 标准导致的标头中的 QtGStreamer 编译时错误?
- C++11标准是否保证"auto n2 = const_cast<int&>(n);" "n2 is int&"?
- C++11 标准::运行时有条件?
- C++11 标准::to_string(双) - 无尾随零
- 在C++11标准中,它在哪里指定了在翻译过程中何时可以计算constexpr函数
- C++11 标准是否保证跨实现的同一种子具有相同的随机数?
- 转到新的 c++11 标准
- 如何告诉SCONS使用C 11标准
- C++11 标准中的哪些条款允许我消除下面“A::operator-()”中“返回”语句中的“A”
- C++11 标准::regex_match 返回额外的字符