标准在哪里指定类中定义的函数是内联的?



在我的理解中,类定义中定义的成员函数隐式inline

class X {
int f() { return 1; } // Implicitly inline.
};
int g() { return 2; } // Not implicitly inline.

我一直在寻找支持这一点的标准报价,但我只能找到 basic.link/7:

此外,成员函数、静态数据成员、类作用域的命名类或枚举,

或者在类作用域 typedef 声明中定义的未命名类或枚举,使得类或枚举具有用于链接目的的 typedef 名称 ([dcl.typedef](,与它所属的类的名称具有相同的链接(如果有(。

我在 dcl.typedef 中找不到任何与简单类定义相关的内容(不涉及typedef(。

我找对地方了吗?如果不是,确切的标准措辞是什么,在哪里?

也许看看关于,嗯,inline的部分。 🤪

[dcl.inline]/4:类定义中定义的函数是内联函数。

这实际上在稍后关于成员函数的部分中重复(这似乎也很明智!

[class.mfct]/1:成员函数可以在其类定义中定义,在这种情况下,它是一个内联成员函数[..]

它在[class.mfct] 中:

成员函数

可以在其类定义中定义,在这种情况下,它是一个内联成员函数,...

相关内容

  • 没有找到相关文章

最新更新