gcc编译器标志在编译期间抑制模板错误的模板扩展?

时间:2011-08-06 00:11:37

标签: 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<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.

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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