我正在使用GCC 4.7.2。我的代码在模板,STL和boost用法上相当沉重。当我编译并且在某些类或函数中出现错误或使用某些boost / STL功能时,我会收到错误消息,显示我的类/函数的非常可怕的返回类型和/或函数参数。
我的问题:
对于包含boost / STL类型的GCC警告/错误,是否存在漂亮的印刷类型,因此错误消息中显示的返回类型与我在代码中输入的内容相对应,或者至少变得更易于理解?
我已经简要地浏览了this question,但这是关于GDB而不是GCC ......
我也遇到了this pretty printer in Haskell,但这似乎只是增加了结构,而不是带走(大部分)不需要的细节......
还有其他建议吗?
答案 0 :(得分:2)
您可以尝试由David Abrahms& Sons提供的'C ++ Template Metaprogramming'中提到的STLfilt。 Alesky Gurtovoy。
本书包含有关模板消息诊断的章节。它建议使用STLFilt /showback:N
来消除编译器回溯材料,以便简化输出。
答案 1 :(得分:2)
我问similar question,有人建议我尝试gccfilter。它是一个Perl脚本,它重新格式化g ++的输出并对其进行着色,缩短它,隐藏完整的路径名,以及更多。
实际上,这个建议也很好地回答了这个问题:它能够隐藏不需要的细节并且能够漂亮地打印STL和boost类型。所以:我也会把这个留在这里作为答案。
我能看到的唯一缺点是需要从脚本中调用g ++(即,当时不可能使用g +管道)。我怀疑它很容易修复,无论如何,这是一个相对较小的问题。