【发布时间】:2011-04-22 05:34:54
【问题描述】:
以下哪个 C++ 编译器更适合关注 C++ 模板(+ 发出的错误消息)?
- g++
- 叮当
- 喜剧
- cl.exe (MSVC++)
- icl.exe(英特尔 C++)
【问题讨论】:
-
Comeau 和英特尔 C++ 在大多数情况下应该发出相同的语法和语义错误诊断消息,因为它们都使用 EDG 前端。
-
不同的人对报告错误的方式有不同的偏好。一些人对与一个模板错误相关的 20 行感到恐慌,或者希望尽可能将类型简化为其 typedef 名称,而另一些人则喜欢获得最大的细节,以便他们可以在实例化链上上下工作并了解问题的其他方面。没有适合所有人的“更好”——这取决于您的技能水平以及您必须编写和使用的代码的复杂性。
-
在所有情况下,这些编译器都不会发出比其他所有编译器更好的诊断消息。当然,您可以选择某些示例并说“看看这个编译器给出的这个漂亮、清晰、可操作的消息,看看所有其他编译器给出的废话错误消息”,但我知道我已经看到了来自每一个让我困惑的编译器。能够使用多个编译器编译您的代码是一件好事,这样当您确实遇到令人费解的错误消息时,您可以看到另一个编译器要说什么。
-
@James:完全同意你最后的评论。 :-)
标签: c++ templates compiler-construction compiler-errors