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

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(使用前将#替换为@)

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

  • c# - 显示小数点到小数点后 6 位 [重复]

    这个问题在这里已经有答案了 可能的重复 具有 N 个小数位的 Double ToString https stackoverflow com questions 3059759 double tostring with n number o
  • 如何重命名序列化对象列表后生成的 XML 属性

    我正在序列化对象列表List
  • 动态选择和更新 LINQ 结果集中的列值

    我有一个场景 其中存在 LINQ 结果集 我使用了以下查询 var stockDetails from d in db BloodBanks where d bbUserName Session username ToString sele
  • 如何通知父线程所有子线程都已终止?

    我有一个控制台应用程序正在移植到 WPF 该应用程序有 3 个工作线程 在将一些输出结果打印到屏幕上之前 这些线程都连接到主线程 我的理解是 如果我尝试在 WPF 应用程序中执行相同的操作 GUI 将被阻止并且不会响应用户 那么如何通知父线
  • 可变数量的(常量)引用参数

    我试图从我的高级代码 使用 C 11 中消除原始指针 并且我找到了引用 尤其是const 在许多情况下 当没有所有权转移时 是一个很好的替代品 但如果有的话该怎么办variable我想通过 常量 引用传递的参数数量 你不能创建一个std v
  • 为什么这个 oracle 批量插入不起作用?

    我正在尝试将一些数据批量插入到 oracle 数据库中 我按照文档中的示例进行操作 this DataBaseAccess new OracleConnection connString var dataAdapter new Oracle
  • 将 void *user_data 转换为对象

    我该如何投射void something到标准 C 中的对象 具体来说我想投void userdata to std map
  • 比较 LINQ to SQL 中的两个日期

    我有一个数据库 其中有一个名为会议的表 会议日期使用以下格式存储在此表中 May 2nd 2011 例如 格式为5 2 2011 我的要求是获取两个日期 例如 2011 年 4 月 25 日和 2011 年 5 月 2 日 之间的会议 并编
  • 我的 WPF 应用程序未触发 MainWindow_Loaded

    我目前正在关注Pluralsight C Fundamentals Part 1并在Classes and Objects视频部分指导我在 Visual Studio 中创建一个新的 WPF 应用程序并填写代码 这导致以下结果 namesp
  • 修剪 UIImage 边框

    这是我想要修剪的图像的示例 我想去掉图像周围的边框 在本例中是顶部和底部的黑条 我在Github上找到了一个库 CKImageAdditions https github com cmkilger CKImageAdditions 但是它似
  • 以编程方式运行 T4 文本模板

    有没有一种方法可以通过代码以编程方式运行 T4 文本模板 我正在制作一种自定义域特定语言 我希望相关的文本模板在用户每次保存时运行 目前 这就是我在 DSL 模型中所做的事情 protected override void OnDocume
  • 函数指针上的未知类型 F TYPE

    include
  • EF Core 一对多关系列表返回 null

    我正在尝试学习如何在 EF Core 中正确利用 DbContext 我有一个团队课程 public class Team public int ID get set public string Name get set public bo
  • 为什么这个单独的定义会导致错误?

    挑战 我有这段代码无法编译 你能找出问题所在吗 有一次让我很头疼 header namespace values extern std string address extern int port cpp file std string v
  • 三种 System.Drawing 方法表现出缓慢的绘制或闪烁:解决方案?或其他选择?

    我正在通过 System Drawing 进行一些绘图 但遇到了一些问题 我将数据保存在队列中 并将该数据绘制 绘制 到三个图片框中 此方法填充图片框 然后滚动图形 所以不要在以前的绘图上绘制 并且逐渐看起来更混乱 我找到了两种绘制图表的解
  • 如何使用 ProtoGen 从 proto 文件生成结构

    我们一直在使用 protobuf net ProtoGen 从 proto 文件生成 C cs 文件 我们希望代替类来生成结构 例如 DataContract public struct Entity1 ProtoMember 1 publ
  • C++:LPWSTR 在 cout 中打印为地址

    我有一个类型变量LPTSTR 我打印到std cout with lt lt 在 ANSI 系统中 不知道它是在哪里确定的 它工作得很好 它打印了字符串 现在 在 Unicode 系统中 我得到的是十六进制地址而不是字符串 那么 为什么LP
  • #define 内存地址声明

    这个 define 语句有什么作用 它用于定义内存地址 但我不明白 uint32 t 部分 define GPxDAT uint32 t 0x6FC0 通常用于访问映射到地址空间的硬件寄存器 或者一些特定的内存地址 硬件寄存器应定义为vol
  • 使用非字符串作为字符串(而不是自动使用 ToString)时如何显示错误?

    建议的重复确实是一个类似的问题 然而 答案只涵盖一种选择 禁用 ToString 本身 还有其他可能的解决方案 例如让 Visual Studio 警告我 或者不调用 ToString 仔细阅读那里的答案 他认为is调用 只是解释说没有办法
  • 替换全局热键

    我有一个位于托盘中的应用程序 我想定义多个热键来触发我的程序中的事件 我从 AaronLS 在这个问题中的出色回答中找到了灵感 使用C 设置全局热键 https stackoverflow com a 27309185 3064934 如果

随机推荐

  • 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