【发布时间】:2012-07-10 17:35:15
【问题描述】:
有一种相对较新的方式可以直接指定函数类型(至少,作为模板参数)。不知道这是否是严格的 C++11,但我在阅读 GCC 4.7 的 STL 标头时遇到了它。
是这样的:
std::function<void(int, char**)> f;
现在,在头文件 <functional> 中,我看到以下内容:
template <typename R, typename... A>
struct SomeStruct<R(A...)> { /* */ };
这是可以理解的:SomeStruct 的显式特化,用于返回类型为 R 和参数类型为 A 的函数类型。
但请考虑以下声明(在下一行):
template <typename R, typename... A>
struct SomeStruct<R(A......)> { /* */ };
那个双省略号是什么意思?
【问题讨论】:
-
啊,对。这是重复的,抱歉。
标签: c++ templates syntax c++11 std-function