在类体

时间:2016-07-12 01:06:49

标签: c++

通常,当我们直接在类体中定义成员函数时,它是隐式的inline。但是这个怎么样:

class Foo {
public:
    friend void swap(Foo& a, Foo& b) { ... }

    ...
};

swap是否隐含inline

1 个答案:

答案 0 :(得分:5)

是。请参阅标准中的[class.friend / 6-7]:

  

当且仅当该类是非本地类(9.8),函数名称是非限定的,并且该函数具有命名空间范围时,才能在类的友元声明中定义函数。

     

这样的函数隐式inline