9

我正在查看我的标头(g++-4.5.2)中某些模板的实现,我发现了以下内容:

/// is_function
template<typename>
  struct is_function
  : public false_type { };
template<typename _Res, typename... _ArgTypes>
  struct is_function<_Res(_ArgTypes...)>
  : public true_type { };
template<typename _Res, typename... _ArgTypes>
  struct is_function<_Res(_ArgTypes......)>
  : public true_type { };

前两个声明似乎合理,但我不知道第三个是如何工作的。是什么......?我在标准中寻找它,找不到任何东西。

4

2 回答 2

7

它与以下内容相同:

_Res(_ArgTypes..., ...)

省略号参数前的逗号是可选的。

于 2013-02-02T08:15:26.723 回答
0

该模板处理函数中的可变长度参数。例如:

void foo(bool, char, int...)
于 2018-04-25T14:02:45.883 回答