typedef std::function<bool(int)> MyFunction;
那个bool(int)
模板参数表示法语法 - 它有名字吗?我试图阅读关于这种语法的C ++标准,并且不知道要搜索什么。
显然,在其他环境中使用它似乎失败了。
typedef bool(int) MyFunctionType; // does not work.
所以我假设某个地方有一个特殊的章节...
感谢。
答案 0 :(得分:9)
我不知道这个的通用名称。在标准中,在语法生成之后,它被称为 type-id 。
type-id bool(int)
将“(int)
返回bool
”的类型命名为。
它不适用于typedef
(使用正常声明语法),但使用using
声明的别名确实使用 type-id :
using MyFunctionType = bool(int);
答案 1 :(得分:2)
N4140在[dcl.fct]中调用bool(int)
函数类型。如另一个答案中所述,这是一个 type-id :
[dcl.name] / 1明确指定类型转换,并作为
sizeof
,alignof
,new
或typeid
的参数, 类型应指定。这可以使用 type-id 来完成 语法上是该类型的变量或函数的声明 省略了实体的名称。