我正在阅读一些 chromium 项目源代码,我发现一件事我无法理解,有一个模板采用一个参数和部分专业化,如下所示:
template <class Sig>
class Callback;
template <typename R, typename A1,typename A2>
class Callback<R(A1,A2)>
{
};
然后我可以像这个例子一样创建对象:
Callback < float ( int , string ) > myCallback;
Callback < int ( float , int ) > myCallback2;
etc.
我正在尝试理解这个表达式“ float (int , string) ”,这通常意味着什么?它是某种没有名称的函数签名吗?我完全糊涂了。
有人可以尝试解释它是如何工作的吗?
提前致谢