0

我正在使用 GCC 4.7.2。我的代码在模板、STL 和boost使用方面相当繁重。当我编译并在某些派生自或使用某些 boost/STL 功能的类或函数中出现错误时,我收到错误消息,显示我的类/函数的返回类型和/或函数参数非常可怕。

我的问题:

对于包含 boost/STL 类型的 GCC 警告/错误,是否有一种漂亮的打印类型,以便错误消息中显示的返回类型对应于我在代码中键入的内容,或者至少变得更容易理解?

我已经简要浏览了这个问题,但是,这是关于 GDB 而不是 GCC ......

我也在Haskell 中遇到过这台漂亮的打印机,但这似乎只是增加了结构,而不是带走了(大部分)不需要的细节......

还有其他建议吗?

4

2 回答 2

2

我问了一个类似的问题,有人建议我尝试gccfilter。这是一个 Perl 脚本,它重新格式化 g++ 的输出并对其进行着色、缩短、隐藏完整路径名等等。

实际上,这个建议也很好地回答了这个问题:它能够隐藏不需要的细节并漂亮地打印 STL 和 boost 类型。所以:我也会把这个留在这里作为答案。

我能看到的唯一缺点是 g++ 需要从脚本中调用(即,当时不可能通过管道连接它)。我怀疑这很容易解决,无论如何,这是一个相对较小的问题。

于 2012-10-25T10:50:22.773 回答
1

您可以尝试David Abrahms 和Alesky Gurtovoy 在“C++ 模板元编程”中提到的 STLfilt。

本书包含有关模板消息诊断的一章。它建议使用STLFilt /showback:N消除编译器回溯材料以获得简化的输出。

于 2012-10-25T10:40:26.957 回答