其中一个是优化'效果,另一个是与ODR相关的效果。
对我来说,这两个似乎是完全不相关的东西,所以我很难理解为什么同一个关键字被用于两者。
答案 0 :(得分:2)
与const
,static
和auto
(等)的多种用法进行比较
C ++委员会对保留新关键词过敏。
答案 1 :(得分:1)
从技术上讲,我认为它实际上并没有改变ODR - 你只应该提供一个定义(这个定义可以多次发生,但它应该是相同的)。我有点懒得查阅规范的确切内容,但我记得之前关于这个主题的讨论“你不能在其他地方有不同的声明”(换句话说,实际的代码本身应该是每次都一样)。
至于原因:因为原始用法仍然是inline
打算使用的 - 这些日子的编译器很聪明,可以弄清楚什么时候这是一个好主意,何时不是一个好主意,实际上内联函数。
关键是我们需要一些方法告诉编译器和链接器“这个函数是相同的函数,即使你多次看到它”。可以发明一个新关键字,但编译器使用的关键字越多,我们作为程序员可用的单词就越少。当然,古代代码仍将使用旧关键字,因此仍然需要支持。添加一个与现有关键字相同的新关键字,我看不到多少好处。
答案 2 :(得分:0)