std::tr1::函数和它接受的模板值

std::tr1::function and the template value it accepts

本文关键字:tr1 函数 std      更新时间:2023-10-16

我正在查看一些代码,并发现了类似于以下内容的行:

std::tr1::function<bool (int, int)>(//etc...

模板类型的语法,bool (int, int)对我来说并不熟悉。 基于谷歌搜索,在std::tr1::function的情况下,这种语法似乎用于定义函数的返回类型和参数。 这是有道理的,但为什么这种语法有效? 据我所知,C++模板只能指定类型?

我尝试在代码中实例化该类型的实例:

bool (int, int) test;

正如我所料,该语句编译失败。 至少,语法需要像这样: 布尔值(测试)(整数,整数);

bool (int, int)被视为C++类型吗? 有什么技巧可以在我脑海中调和这一点吗?

谢谢亚当

它被称为函数类型。

您无法创建它的实例,但可以创建指向它们的指针和 typedef。

这个问题有一些见解:函数类型的用途是什么?