限定名称和使用声明操作的 clang 错误消息
clang error messages for qualified names and using declaractions
请考虑以下代码。
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 并收到错误。这个错误,至少在叮当中,看起来像
error: ... for type A::B::C::D::E::X
.
我宁愿为B::X
说明错误.
有没有办法将 clang 错误消息配置为使用声明的位置,而不是别名实体?
我认为编译器使用 A::B::C::D::E::X 是件好事,否则可能会模棱两可。如以下示例所示:
namespace A::B::C::D::E {
struct X {
int y;
};
}
namespace B {
using namespace A::B::C::D::E;
void foo() {
X aa;
B::X bb;
aa.y = 0;
}
struct X {
int z;
};
void bar() {
X aa;
B::X bb;
aa.y = 0;
}
}
int main() {
return 0;
}
可以在 B 命名空间中声明一个结构 X,然后是 B::X,并且有必要调用另一个结构 A::B::C::D::E::X,否则无法区分它们。
相关文章:
- 获取 clang++:错误:在编译文件系统库的代码时
- clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用) - 体系结构的未定义符号 x86_64:
- 如何修复 clang: 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- "Make"失败并出现 Clang 错误 - 如何从 Clang 获得错误?
- Android NDK.Build命令失败.未定义的引用.clang++:错误:链接器命令失败,退出代码为1
- Clang 错误 – 编译器错误或缺少一些细节?
- 为什么我在以下代码中收到 clang 错误?
- clang:错误:链接器命令失败,C++代码中的退出代码为 1(使用 -v 查看调用)
- NDK Clang 错误:未定义对"localeconv"的引用
- Clang 3.8 错误:参数 '-fuse-ld=gold-2.25' 中的链接器名称无效
- 限定名称和使用声明操作的 clang 错误消息
- 编译模板时的clang错误
- ld:1 个重复符号用于架构x86_64 clang: 错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
- C /R:clang:错误:Linker命令失败,出口代码1(使用-v查看调用)
- clang错误,没有可行的转换
- gcc 未给出的 Clang 错误"attempted to construct a reference element in a tuple with an rvalue"
- Clang:错误:非静态数据成员的使用无效
- 启用 openmp 时出错 - "ld: library not found for -lgomp" 和 Clang 错误
- 为什么在使用初始化语法时不调用转换运算符,为什么 clang 错误消息看起来是错误的
- 当使用 stdlibc++ 4.7 启用 C++11 时,clang 错误,而 gcc 编译正常