【发布时间】:2012-05-19 02:58:30
【问题描述】:
由于模板是在头文件中定义的,并且编译器能够确定内联函数是否有利,这是否有意义?我听说现代编译器更清楚何时内联函数并且忽略了inline 提示。
编辑:我想接受这两个答案,但这是不可能的。为了结束这个问题,我接受 Sebastian Mach 的回答,因为它获得了最多的选票,而且他在形式上是正确的,但正如我在 cmets 中提到的,我认为 Puppy 的和组件 10 的答案也是正确的,从不同的角度来看。
问题在于 C++ 语义,在 inline 关键字和内联的情况下并不严格。 Sebastian Mach 说“如果你是认真的就写内联”,但 inline 的实际含义尚不清楚,因为它从最初的含义演变为“停止编译器对 ODR 违规行为进行抱怨”的指令正如小狗所说。
【问题讨论】: