可能重复:
“……”令牌的含义是什么?
在查看 libc++ 的 header<type_traits>
时,我偶然发现了这些类模板特化:
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......)> // <-- Huh?
: public true_type { };
还有三对专业化(const
和volatile
变const volatile
体),都采用相同的方式。
看起来像两个省略号运算符组合在一起。我能找到的唯一提及是在cplusplus.com上,它说它也可以用空格 ( _ArgTypes... ...
) 或逗号 ( _ArgTypes..., ...
) 编写,但没有解释它的含义。
那么,这个语法是什么意思呢?这种专业化的目的是什么?