有状态元编程:C 中格式错误的威胁
有状态元编程的神秘概念(以“constexpr 计数器”为例)已经令 C 程序员既好奇又困惑。虽然它在 C 14 中似乎是允许的,但它在 C 17 中的状态仍然不确定。
神秘的 Constexpr 计数器
正如帖子中所述,constexpr 计数器利用了 ADL捕获和检索状态信息的机制。通过在模板中定义友元函数并稍后引用它,它可以存储元编程状态。
矛盾和争议
这种技术直接与之前的存储指南相矛盾元编程中的状态。它引发了有关此类神秘构造的有效性的问题。
CWG 的活跃问题
C 工作组 (CWG) 已认识到此问题(CWG 活跃问题 2118)。他们一致认为这些技术应该是格式错误的,但禁止它们的机制尚未确定。
对 C 17 的影响
虽然 CWG 尚未明确声明由于有状态元编程格式不正确,因此很可能通过缺陷报告 (DR) 追溯应用此类禁令。在此之前,它在 C 14 下的合法性及其在未来 C 标准中的地位仍不确定。
结论
有状态元编程虽然有趣,但却是对一致性的潜在威胁C 元编程的可靠性。 CWG 对不良形成机制的积极追求强调了在使用这些先进技术时需要谨慎。随着 C 的发展,我们可以期待这个问题的解决,这将阐明有状态元编程在编程领域中的作用。
以上是有状态元编程对 C 一致性有威胁吗?的详细内容。更多信息请关注PHP中文网其他相关文章!