std::function
有一个模板参数:
template< class R, class... Args >
class function<R(Args...)>
我想知道,R(Args...)
是什么类型,我认为它既不是一个函数指针 T
:
template<class R, typename... Args>
using T = R(*)(Args...);
也不能是 函数引用 Q
:
template<class R, typename... Args>
using Q = R(&)(Args...);
所以类型
P
是指:template<class R, typename... Args>
using P = R(Args...);
简单地说,这是一个函数。
我可以声明这样的一个函数并调用它:
int main(){
P<int,int> myFunc;
myFunc(3);
}
由于myFunc
从未被定义,因此它不会编译。如果这是正确的,请问在标准中我可以找到更多关于这种函数类型的信息?
R
,应该是template<typename R, typename... Args> using P = R(Args...);
。 - user7860670int f(int);
是一个函数声明,其类型为int(int)
,与int f[10]
声明一个类型为int[10]
的数组的方式相同。请注意,这里只是声明函数而不是定义函数。 - Barry