我想检查一个完全合格的名称和一个非限定名称或部分限定名称是否引用相同的符号,即使没有定义一个名称。也就是说,我希望能够写这样的事情作为重构工具的一部分:如何检查一个名称是否与另一个名称相同?
namespace A {
void f() {};
}
namespace B {
namespace A {};
bool g() {
// returns false
return is_same_symbol<A::f, ::A::f>::value;
}
}
namespace C {
bool h() {
// returns true
return is_same_symbol<A::f, ::A::f>::value;
}
}
“我想检查是否能够检查两个不同的符号是否指向同一事物,即使其中一个不存在。”这没有什么意义。 –
@NeilButterworth是的,我知道,我不知道如何表达它。我想有一种更好的方式来说这是“我想检查一个完全合格的名称和一个不合格或部分合格的名称是否指向相同的符号” –
如果一个符号没有定义,并且您尝试使用它,你会得到一个编译器错误,很简单。 – AndyG