如果在类中定义了成员函数,则它是内联函数。 E.g。
struct X
{
void mem_f() {} //mem_f is inline
};
我的问题是在类中定义的非成员友元函数是否也自动内联。
E.g。
struct Y
{
friend void friend_f() {} //is friend_f inline?
};
标准中的相关引用/ paragraph_no将非常受欢迎。感谢。
答案 0 :(得分:13)
是的,确实如此。 §11.4/ 5:
可以在朋友中定义一个功能 当且仅当的时候声明一个类 该班级是非本地班级(9.8), 函数名称不合格,并且 该函数具有命名空间范围。 这样的函数是隐式内联的。在中定义的友元函数 一个类在(词法)范围内 定义它的类。一个 在外面定义的朋友功能 class不是(3.4.1)。
由于类定义可能是在头文件中,因此函数将被多重定义,因此需要inline
。