C++ gcc编译器标志,用于在编译过程中抑制模板错误的模板扩展?

C++ gcc编译器标志,用于在编译过程中抑制模板错误的模板扩展?,c++,templates,gcc,compiler-construction,C++,Templates,Gcc,Compiler Construction,我想知道gcc编译器是否有一个标志或修改,当遇到涉及模板的错误时,它会返回一个行号和一个解释错误类型的句子,但会不打印模板扩展代码spaghetti页面,该页面总是跟在这些错误后面 例如,不是这样的错误: temp.cc:9: error: ‘class std::map<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::basic_string<

我想知道gcc编译器是否有一个标志或修改,当遇到涉及模板的错误时,它会返回一个行号和一个解释错误类型的句子,但会打印模板扩展代码spaghetti页面,该页面总是跟在这些错误后面

例如,不是这样的错误:

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’

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

gcc没有这个标志,但是
sed
可以很容易地解决这个问题。

通过sed或perl脚本进行管道输出?试试Clang-这是Clang前端的设计特性之一。它试图提供帮助,但是STL用户不需要看到所有的字符特征。。。。这是STL开发人员所需要的。
temp.cc:9: error: class has no member named hat.