Hasty Briefsbeta

双语

The Ignorability of Attributes in C++

a year ago
  • #Attributes
  • #C++
  • #Language Design
  • C++中的属性最初被设计为可忽略的,这导致它们无法适用于解决许多问题。
  • 将[[override]]和[[final]]等属性作为上下文关键字而非属性引入,导致了语法上的不一致性和复杂性。
  • 使属性可忽略的决定损害了语言的发展,导致了更糟糕的决策和更多关于自我制造问题的讨论。
  • 像[[no_unique_address]]这样的例子展示了可忽略属性如何导致ABI破坏和兼容性问题。
  • 当前的语言特性(如C++26中的平凡重定位)因被实现为上下文关键字而非属性而受到影响,导致更复杂且表达能力下降。
  • 未来的语言特性可能受益于不可忽略的属性,但当前模型限制了它们的实用性。
  • 文章主张放弃可忽略属性的概念,以停止损害语言发展并简化未来特性的添加。