【问题标题】:What exactly is One Definition Rule in C++?C++ 中的一个定义规则到底是什么?
【发布时间】:2011-05-10 16:21:15
【问题描述】:

C++ 中的一个定义规则到底是怎么说的?我能找到的唯一值得信赖的事件是在The C++ Programming Language, 3rd。编辑,第 9.2.3 页。除此以外,还有没有官方的规则定义?

【问题讨论】:

标签: c++ definition


【解决方案1】:

真理在标准中(3.2 一个定义规则):

任何翻译单元不得包含更多 比任何变量的一个定义, 函数、类类型、枚举类型 或模板。

[...]

每个程序都应包含完全 每个非内联的一个定义 中使用的函数或对象 该程序;无需诊断。 定义可以显式出现 在程序中,可以在 标准或用户定义的库,或 (在适当的时候)它是隐含的 定义(见 12.1、12.4 和 12.8)。一个 内联函数应定义在 它所在的每个翻译单元 用过。

【讨论】:

  • 呃,还不止这些。它还涉及多个翻译单元。以及规则的例外(这使得谈论它有点困难!)。干杯,
  • 确实,我必须引用整个页面,所以我选择了基本内容。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-01-30
  • 2010-10-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多