因为模板是在头中定义的,而编译器能够确定内联函数是否有利,所以这样做有意义吗?我听说现代编译器更清楚什么时候内联函数,而忽略了 inline
提示。
我想接受这两个答案,但这是不可能的。为了结束这个问题,我接受 塞巴斯蒂安 · 马赫的答案,因为它收到了大多数的投票,他是正确的,但是正如我在评论中提到的,我认为 小狗和 第十部分的答案也是正确的,从不同的角度来看。
问题在于 C + + 语义,在 inline
关键字和内联的情况下,C + + 语义并不严格。塞巴斯蒂安 · 马赫说“如果你是认真的,就写内联”,但是 inline
的实际含义并不清楚,因为它从最初的含义演变成了一个指令,如 小狗所说,“停止编译器抱怨 ODR 违规”。