这种语法的(可搜索的)名称是什么?

时间:2015-02-22 13:39:42

标签: c++ c++11

typedef std::function<bool(int)> MyFunction;

那个bool(int)模板参数表示法语法 - 它有名字吗?我试图阅读关于这种语法的C ++标准,并且不知道要搜索什么。

显然,在其他环境中使用它似乎失败了。

typedef bool(int) MyFunctionType; // does not work.

所以我假设某个地方有一个特殊的章节...

感谢。

2 个答案:

答案 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明确指定类型转换,并作为   sizeofalignofnewtypeid的参数,   类型应指定。这可以使用 type-id 来完成   语法上是该类型的变量或函数的声明   省略了实体的名称。