通常,当我们直接在类体中定义成员函数时,它是隐式的inline
。但是这个怎么样:
class Foo {
public:
friend void swap(Foo& a, Foo& b) { ... }
...
};
swap
是否隐含inline
?
答案 0 :(得分:5)
是。请参阅标准中的[class.friend / 6-7]:
当且仅当该类是非本地类(9.8),函数名称是非限定的,并且该函数具有命名空间范围时,才能在类的友元声明中定义函数。
这样的函数隐式
inline
。