C ++中的一个定义规则究竟是什么?

C ++中的一个定义规则是什么意思? 我能找到的唯一值得信赖的事情就是“C ++编程语言”第三版。 编辑,第9.2.3节 。 除了这个规则,有没有官方的规定?

事实是在标准中(3.2一个定义规则):

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

[…]

每个程序应该包含该程序中使用的每个非内联函数或对象的一个​​定义; 不需要诊断。 该定义可以在程序中显式出现,可以在标准库或用户定义的库中找到,或者(在适当时)隐式定义(见12.1,12.4和12.8)。 内联函数应在使用它的每个翻译单元中定义。