c++ - 使用模板更精确的诊断错误消息?

标签 c++ templates diagnostics

模板的编译错误通常是模糊的并且不容易破译,除非一个人真的精通模板。很多时候,专家程序员可能也会被这些弄糊涂。我相信我们中的大多数人都曾多次感受到它的痛苦。

据我了解,C++ 标准仅要求实现为格式错误的程序提供诊断,而不是如何什么应提供诊断消息。
但是,标准委员会是否制定了任何指导方针来克服这个不易辨认的诊断问题(尤其是在模板的情况下)。有没有讨论过这个问题? 此外,主流实现是否正在针对此问题采取措施或已计划解决?

这个问题的讨论非常开放,但是 SO C++ 社区是最活跃的 C++ 社区之一,我相信某个地方的某个人至少对此有所了解。 此外,一些标准委员会成员(我知道)积极参与 C++ 标签,我希望他们可能有一些关于此的信息,如果等人。

最佳答案

您在问两个不同的问题。

首先,是的,主流实现正在为此做一些事情。它可能不是 g++ 或 msvc 的首要任务,但它们并不是唯一的主流实现。这是 clang 背后的设计目标之一(参见 http://clang.llvm.org/diagnostics.html ),至少在某些时候英特尔将更好的模板错误列为 ic++ 优于 msvc 的卖点。

其次,标准委员会的人员对此进行了详细讨论,并且大多数人同意概念是答案的重要组成部分,这实际上意味着它被推迟到 future ,因为概念已从 C++11 标准中删除.

关于c++ - 使用模板更精确的诊断错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10743410/

相关文章:

c++ - 带模板的条件返回类型

c++ - 错误 : C2988: unrecognizable template declaration/definition

performance - 我可以远程捕获 Azure Web/辅助角色的性能计数器吗?

c++ - glGetTexLevelParameter 问题

具有默认参数的 C++ 模板

c# - Winforms应用程序崩溃

kotlin - 如何让编译器说出它认为表达式是什么类型?

android - 在 Cocos2d-x 中比较字符串时出错

c++ - 编译 DeSiGn 时出错

c++ - 了解工厂方法和静态变量分配的返回值优化 (Visual Studio)