c++ - gcc 编译器标志以抑制编译期间模板错误的模板扩展?

标签 c++ templates gcc compiler-construction

我想知道 gcc 编译器是否有标志或修改,当它遇到涉及模板​​的错误时会返回一个行号和解释错误类型的句子,但不会打印总是出现此类错误的模板扩展代码面条页面。

例如,而不是像这样的错误:

temp.cc:9: error: ‘class std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<const std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<char,     std::char_traits<char>, std::allocator<char> > > > >’ has no member named ‘hat’

我想要这样的东西:

temp.cc:9: error: class has no member named hat.

最佳答案

没有一个。编译器试图帮助您识别导致问题的类。它只知道该类是其模板类型的扩展。

关于c++ - gcc 编译器标志以抑制编译期间模板错误的模板扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6963892/

相关文章:

c++ - 如何重载 std::swap()

c++ - 使用 Variadic 模板的任意维数组

c++ - 扩展包含 int 包的类型

gcc - 无法激活 gcc 中的 "-march=native"或 Core2 芯片中的任何其他标志设置的 SSE 指令

c - 在不同级别使用不同的枚举类型

c++ - 用于包装类方法的回调函数和 static_cast

c++ - vulkan-hpp中的奇怪C++语法

c++ - clang 是否支持双字比较和交换操作?

c++ - 类内枚举前向声明是否可能?

C++:强制模板类型实现一个方法