如果typedef声明定义了一个未命名的类(或枚举类型),则该声明声明的第一个typedef-name是该类类型(或枚举类型),用于表示链接的类类型(或枚举类型)仅([basic.link])。 [注意:涉及lambda-expression的typedef声明本身不会定义关联的闭包类型,因此,出于链接目的,没有为闭包类型指定名称。 —尾注] [示例:
typedef struct { } *ps, S; // S is the class name for linkage purposes
typedef decltype([]{}) C; // the closure type has no name for linkage purposes
-示例]
答案 0 :(得分:0)
我认为您没有正确解析。这就是说,在这种声明中,将以这种方式确定“用于链接目的的名称”。如果某个类型的名称出现在函数参数中,则需要为该类型命名(请参见What is name mangling, and how does it work?)