C ++中的一个定义规则究竟是什么意思?我能找到的唯一值得信赖的事件是 The C ++ Programming Language,3rd。 ed。,P。9.2.3 。除了那个规则之外,该规则是否有官方定义?
答案 0 :(得分:31)
事实是标准(3.2一个定义规则):
任何翻译单位不得包含更多内容 比任何变量的一个定义, 函数,类类型,枚举类型 或模板。
[...]
每个程序都应准确包含 每个非内联的一个定义 功能或对象用于 该计划;无需诊断。 定义可以明确显示 在程序中,它可以在 标准或用户定义的库,或 (在适当的时候)隐含地 定义(见12.1,12.4和12.8)。一个 内联函数应在中定义 每个翻译单元 使用