在cpp reference上,如果忽略指向同一类型的顶级cv限定词,则它们是相同的。在示例中有一个示例
int (* const *)(int *) and int (* volatile *)(int *) are similar;
我想知道那些应该是相似的吗? AFAIK表示一个指向函数指针的指针,以简化它们可以将其重写为
using XYZ = int(*)(int *);
const XYZ *; // A
volatile XYZ *; // B
在这种情况下,A和B指针是否指向不同的类型?
答案 0 :(得分:2)
在cpp引用上,如果忽略指向同一类型的顶级cv限定词,则说两个指针是相同的
不完全是。它说:
非正式地,如果忽略顶级cv资格,则两种类型相似:
它们是同一类型;或
它们都是指针,并且指向的类型相似;或
请注意,相同与相似不同。
const XYZ *; // A volatile XYZ *; // B
在这种情况下,A和B指针是否指向不同的类型?
它们确实是不同的类型。但是它们是相似的。