如果在类中定义了成员函数,则它是内联函数.例如
struct X
{
void mem_f() {} //mem_f is inline
};
Run Code Online (Sandbox Code Playgroud)
我的问题是在类中定义的非成员友元函数是否也是自动内联的.
例如
struct Y
{
friend void friend_f() {} //is friend_f inline?
};
Run Code Online (Sandbox Code Playgroud)
标准中的相关引用/ paragraph_no将非常受欢迎.谢谢.
Pot*_*ter 13
是的.§11.4/ 5:
当且仅当该类是非本地类(9.8),函数名称是非限定的,并且该函数具有命名空间范围时,才能在类的友元声明中定义函数. 这样的功能是隐含的内联.在类中定义的友元函数位于定义它的类的(词法)范围内.在类外定义的友元函数不是(3.4.1).
由于类定义可能是在头文件中,因此函数将被多重定义,因此需要inline.
| 归档时间: |
|
| 查看次数: |
1962 次 |
| 最近记录: |