San*_*lin 1 c++ function c++11 type-alias
我正在尝试为这种std::function类型添加别名,因为我计划将来使用其他东西.我希望能够轻松地做出改变.但是我从编译器收到一条我不太懂的错误信息.我理解这意味着什么,但我不明白这一点.
例:
#include <functional>
template < typename Ret, typename... Args > using MyFunc = std::function< Ret(Args...) >;
int main(int argc, char **argv)
{
MyFunc<void(int)> fn;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
产生:
..\main.cpp|7|required from here|
..\main.cpp|3|error: function returning a function|
Run Code Online (Sandbox Code Playgroud)
template <typename F>
using MyFunc = std::function<F>;
Run Code Online (Sandbox Code Playgroud)
void(int) 是单一(功能)类型.