我在审核一些代码时发现了一行类似于以下的代码:
std::tr1::function<bool (int, int)>(//etc...
对于模板类型,bool (int, int)
的语法对我来说很陌生。通过谷歌搜索,对于std::tr1::function
,这种语法似乎用于定义函数的返回类型和参数。这是有道理的,但为什么这种语法有效呢?据我所知,C++ 模板只能指定类型?
我尝试在代码中实例化该类型的实例:
bool (int, int) test;
正如我所预料的那样,该语句无法编译通过。至少,语法需要像这样: bool (test)(int, int);
bool (int, int)被视为C++类型吗?有没有什么提示可以帮助我理解这个问题?
谢谢, 亚当