类中定义的友元函数是否会自动内联?

2023-11-22

如果成员函数定义在类内部,则它是内联函数。例如。

struct X
{
   void mem_f() {} //mem_f is inline
};

我的问题是类内部定义的非成员友元函数是否也自动内联。

E.g.

struct Y
{ 
   friend void friend_f() {} //is friend_f inline?
};

标准中的相关引用/段落编号将非常受欢迎。谢谢。


是的。 §11.4/5:

可以在友元中定义函数 声明一个类当且仅当 该班级是非本地班级(9.8), 函数名称是非限定的,并且 该函数具有命名空间范围。这样的函数是隐式内联的。友元函数定义于 一个类在(词法)范围内 定义它的类。 A 在外部定义的友元函数 类不是(3.4.1)。

由于类定义可能位于头文件中,因此该函数将被多重定义,因此需要inline.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

类中定义的友元函数是否会自动内联? 的相关文章

随机推荐

  • Git:有没有办法找出提交是从哪里挑选出来的?

    如果我从多个分支中进行挑选 是否有一种简单的方法可以找出提交来自哪里 例如原始提交的 sha Example 在主分支 从开发分支挑选提交 A A 在 master 分支变成 D Before B master Feature Y C de
  • PMD 插件因 Java 14 失败:不支持的 targetJdk

    我正在尝试将带有 PMD 插件的 pom xml 文件集成到构建阶段 PMD版本3 13 0 甲骨文JDK 14
  • XML 和 ASP:检索并解析远程文件

    我正在启用 ASP 的 Windows Server 上构建一个网站 我需要从另一台服务器检索 XML 文档并返回该文档中的值 xml 文件很小 只有一个带有文本值的节点 我只需要返回该文本值 我以前从未使用过 ASP 谷歌搜索让我找到了一
  • 何时使用桥接模式以及它与适配器模式有何不同?

    有没有人用过桥纹在现实世界的应用程序中 如果有 你是如何使用它的 是我 还是只是适配器模式加入一点依赖注入 它真的值得拥有自己的模式吗 有一个组合费德里科的 and John s答案 When Shape Rectangle Circle
  • 地理位置:仅移动谷歌地图标记而不重新加载地图

    我只需要在设备移动或设备变得更加准确时更新标记 当位置改变时也会重新加载地图 我只需要移动制造商 我有以下代码 if navigator geolocation navigator geolocation watchPosition fun
  • jQuery 3D 轮播?

    有人看过像这样的 jQuery 3D 轮播教程吗 http web enavu com demos 3dcarouselwip 没有给出来源 但想知道是否有人有关于如何连续圈定 DIV 并调整其大小的提示 它看起来不是真正的 3D 但会根据
  • 在R中调用特定的列名

    colnames 为我提供了整个数据框的列名称 有没有办法获取一个指定列的名称 在 ggplot 中绘制数据时 我需要这个来命名标签 所以说我的数据是这样的 df1 lt data frame a sample 1 50 10 b samp
  • 关于注释的自定义 Eclipse 警告

    假设我有一个内部方法 它应该只在某些情况下使用 在 Eclipse 中 是否有可能将其标记为内部并在使用时显示警告 以防止我或使用我的 API 的人在不知道自己在做什么的情况下错误地使用它 我无法更改它的可见性 因为它也可能在其他包 非扩展
  • 如何使用 SSIS 从平面文件中删除重复行?

    首先我要说的是 能够从平面文件中获取 1700 万条记录 推送到远程机器上的数据库并花费 7 分钟 这真是太神奇了 SSIS 确实太棒了 但现在我已经有了这些数据 如何删除重复项呢 更好的是 我想获取平面文件 从平面文件中删除重复项 然后将
  • Jersey + HK2 + Grizzly:注入EntityManager的正确方法?

    我已经成功地在 Jersey HK2 和一个普通的 GrizzlyServer 中设置了我自己的服务类的注入 到资源类中 基本上遵循这个例子 我现在很好奇将 JPA EntityManager 注入我的资源类中最好的方法是什么 我目前正在考
  • 如何判断 32 位 int 是否适合 16 位 Short

    仅使用 lt lt gt gt 我需要找出有符号的 32 位整数是否可以表示为 16 位二进制补码整数 我的第一个想法是将 MSB 16 位和 LSB 16 位分开 然后使用掩码来处理最后 16 位 这样如果它不为零 则无法表示 然后使用该
  • 根据 JVM 内存粒度确定数组的最佳大小

    当为 例如 集合创建支持数组时 您并不真正关心您创建的数组的确切大小 它只需要至少与您计算的一样大 但由于内存分配和 VM 的数组头 在某些情况下可以创建一个更大的数组而不消耗更多内存 对于 Oracle 32 位 VM 至少互联网上的几个
  • 如何确定为什么我的 Android 应用程序需要某些权限?

    假设我接手了一款 Android 应用程序的开发 我的老板问我为什么我们的应用程序需要某些权限才能向在 Android Market 上购买该应用程序的用户显示 是否有任何工具或技巧可以用来确定哪些代码触发每个权限 以便我可以弄清楚为什么我
  • 在 iPad 上播放 HTML5 视频并查找

    非常奇怪的错误我似乎无法弄清楚 我试图让 HTML5 视频在用户点击播放时从某个位置播放 我试图让它在视频开始播放时正确寻找 在我的游戏活动中我会this currentTime X 在浏览器上它工作正常 但在 iPad 上 当我播放视频时
  • 如何保护自己免受可能无限期挂起的脆弱库调用的影响?

    假设您发现自己不幸地依赖于一个表现不佳的库 您的代码需要调用 FlakyClient call 但有时该函数最终会挂起一段不可接受的时间 如下所示 解决此问题的一种方法是将调用包装在自己的调用中Process 并使用超时参数join方法来定
  • 我如何摆脱呼叫 __x86.get_pc_thunk.ax

    我尝试将一个非常简单的 C 程序编译并转换为汇编语言 我使用的是 Ubuntu 操作系统类型是 64 位 这是C程序 void add int main add return 0 如果我使用 gcc S m32 fno asynchrono
  • 一次仅向一名用户(而非频道)实时推送更新。怎么做?

    我正在创建一个网络应用程序 网站 其中我的服务器将向客户端推送一些信息的实时更新 使用 Pusher api 因此 当服务器将更新推送到该 CHANNEL 时 订阅该 CHANNEL 的用户就可以收到更新 但是 由于我的应用程序的性质 一次
  • 如何在iOS/iPhone/iPad上获取WiFi加密模式?

    如何在没有私有库的情况下在iOS中获取Wi Fi加密模式 上面答案中的代码最初已发布在该网站上 http www codeproject com Articles 621213 Non Standard Way to Get Inacces
  • GCC 4.7 中从初始值设定项列表初始化 unique_ptrs 的容器失败

    我正在尝试初始化一个std vector
  • 类中定义的友元函数是否会自动内联?

    如果成员函数定义在类内部 则它是内联函数 例如 struct X void mem f mem f is inline 我的问题是类内部定义的非成员友元函数是否也自动内联 E g struct Y friend void friend f