【发布时间】:2012-02-08 11:04:34
【问题描述】:
根据C++规范,下面两个类是等价定义的吗?
class A
{
void f()
{
}
};
class B
{
inline void f()
{
}
};
即,将“内联”限定符放在类定义中定义的此类成员函数上是否完全多余?
后续问题:假设它是多余的,对于代码风格,保留“内联”标签是否明智,因此未来的开发人员意识到应该内联函数,并且不会在其他地方删除定义并删除内联?
谢谢:)
【问题讨论】:
-
请注意——我知道“内联”只是对编译器的提示。这个问题与此无关。
-
这不只是一个提示。它有一个重要的意义。这意味着与内联无关,它与 ODR 有关。这也是关于内联的提示。
-
不确定这在 9 年前是否属实,但现在 inline 与实际内联的函数没有任何关系。这取决于编译器。