什么是单一定义规则?

问题描述 投票:0回答:1

C++ 中的单一定义规则到底说了什么? 我能找到的唯一值得信赖的地方是《C++ 编程语言,第 3 篇》。编辑,第 9.2.3 页。除此之外,该规则还有任何官方定义吗?

c++ language-lawyer definition one-definition-rule
1个回答
39
投票
真相就在标准中(3.2 一个定义规则):

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

[...]

每个程序都应准确包含 每个非内联的一个定义 函数或对象

用于 那个程序;无需诊断。 定义可以明确地出现 在程序中,可以找到 标准或用户定义的库,或 (在适当的时候)它是隐式的 定义(见 12.1、12.4 和 12.8)。一个 内联函数应定义在 它所在的每个翻译单元 使用过。

© www.soinside.com 2019 - 2024. All rights reserved.