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