在这个问题中: https://codereview.stackexchange.com/questions/14730/impossibly-fast-delegate-in-c11 在c ++中显示委托的实现,这是什么语法:
template<class R, class ...A>
class delegate<R (A...)> // <--- Argument wrapping of some kind?
这会变成另一种类型吗?我以前从未见过这个,所以我无法解析它应该做的事情。
答案 0 :(得分:2)
这是函数的模板特化。
template <class T>
struct func;
template <class R, class... A>
struct func<R (A...)>
{
};
如果使用函数签名实例化模板,将调用专门化。例如:
func<void(int)> f1;
func<int(int, int)> f2;