【发布时间】:2019-04-15 10:25:40
【问题描述】:
考虑下面的代码。
namespace A::B::C::D::E {
struct X { };
}
namespace B {
using namespace A::B::C::D::E;
// or, using A::B::C::D::E::X;
// or, using X = A::B::C::D::E::X;
}
假设我以某种方式错误地使用了 B::X 并得到了错误。至少在 clang 中,该错误看起来像
error: ... for type A::B::C::D::E::X.
我更愿意为B::X 声明错误。
有没有办法将 clang 错误消息配置为使用 using 声明的位置,而不是别名实体?
【问题讨论】:
-
如果你错误地使用了
B::x,编译器只会提到B::x。见gcc.godbolt.org/z/dROyG1 -
@P.W Not necessary
-
@VTT:所以并非总是如此。并且 OP 希望它始终参考
B::X -
@P.W 是正确的。
标签: c++ compiler-errors namespaces clang name-lookup