2011-08-06 22 views
5

我想知道是否有一个标志或gcc编译器的修改,将返回一个行号和句子,当它遇到涉及模板​​的错误时解释错误的类型,但将而不是打印页面的模板扩展代码总是遵循这样的错误的意大利面条。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. 
+0

通过sed或perl脚本输出管道? – msandiford

+1

尝试Clang - 这是铛前端的设计特色之一。 – osgx

回答

1

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

+0

它试图帮助,但STL用户不需要看到STL开发人员需要的所有char_traits .... – osgx

0

海湾合作委员会没有这个标志,但sed可以轻松解决这个工作。