可以从纯虚函数返回引用吗?

2024-02-01

class I {
public:
  virtual std::wstring const& GetName() const = 0;
};

通常,实现此接口的客户端将其名称包含在其主体中。一切都很好。但有时'GetName'的结果是在函数执行期间计算的。使用静态变量来存储结果不是一个好主意。但按值返回需要额外的性能开销。

那么这个问题该如何解决呢?谢谢。


但按值返回需要 额外的性能开销。

这不是真的。编译器通常能够使用以下方式删除副本返回值优化 http://en.wikipedia.org/wiki/Return_value_optimization.

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

可以从纯虚函数返回引用吗? 的相关文章

  • 使用 std::packaged_task/std::exception_ptr 时,线程清理程序报告数据争用

    我遇到了线程清理程序 TSan 的一些问题 抱怨某些生产代码中的数据争用 其中 std packaged task 通过将它们包装在 std function 中而移交给调度程序线程 对于这个问题 我简化了它在生产中的作用 同时触发 TSa
  • 未提供参数时如何指定 C# System.Commandline 行为?

    在我的控制台应用程序中 当未提供控制台参数时 将执行我指定列表 在本例中为参数 3 的任何处理程序 调用该处理程序时 布尔参数设置为 false 但对我来说 根本不调用它更有意义 如何防止这种情况发生并显示帮助文本 using System
  • 使用 Newtonsoft 和 C# 反序列化嵌套 JSON

    我正在尝试解析来自 Rest API 的 Json 响应 我可以获得很好的响应并创建了一些类模型 我正在使用 Newtonsoft 的 Json Net 我的响应中不断收到空值 并且不确定我的模型设置是否正确或缺少某些内容 例如 我想要获取
  • 为什么 Google 测试会出现段错误?

    我是 Google Test 的新手 正在尝试提供的示例 我的问题是 当我引入失败并设置GTEST BREAK ON FAILURE 1 或使用命令行选项 GTest 将出现段错误 我正在考虑这个例子 https code google c
  • 由 IHttpClientFactory 注入时模拟 HttpClient 处理程序

    我创建了一个自定义库 它会自动为依赖于特定服务的 Polly 策略设置HttpClient 这是使用以下方法完成的IServiceCollection扩展方法和类型化客户端方法 一个简化的例子 public static IHttpClie
  • 在 C 中初始化变量

    我知道有时如果你不初始化int 如果打印整数 您将得到一个随机数 但将所有内容初始化为零似乎有点愚蠢 我问这个问题是因为我正在评论我的 C 项目 而且我对缩进非常直接 并且它可以完全编译 90 90 谢谢 Stackoverflow 但我想
  • 具有交替类型的可变参数模板参数包

    我想知道是否可以使用参数包捕获交替参数模式 例如 template
  • 我可以使用 moq Mock 来模拟类而不是接口吗?

    正在经历https github com Moq moq4 wiki Quickstart https github com Moq moq4 wiki Quickstart 我看到它 Mock 一个接口 我的遗留代码中有一个没有接口的类
  • DbContext 和 ObjectContext 有什么区别

    From MSDN 表示工作单元和存储库模式的组合 使您能够查询数据库并将更改分组在一起 然后将这些更改作为一个单元写回存储 DbContext在概念上类似于ObjectContext 我虽然DbContext只处理与数据库的连接以及针对数
  • C# HashSet 只读解决方法

    这是示例代码 static class Store private static List
  • CMake 无法确定目标的链接器语言

    首先 我查看了this https stackoverflow com questions 11801186 cmake unable to determine linker language with c发帖并找不到解决我的问题的方法 我
  • AES 128 CBC 蒙特卡罗测试

    我正在 AES 128 CBC 上执行 MCT 如中所述http csrc nist gov groups STM cavp documents aes AESAVS pdf http csrc nist gov groups STM ca
  • “接口”类似于 boost::bind 的语义

    我希望能够将 Java 的接口语义与 C 结合起来 起初 我用过boost signal为给定事件回调显式注册的成员函数 这非常有效 但后来我发现一些函数回调池是相关的 因此将它们抽象出来并立即注册所有实例的相关回调是有意义的 但我了解到的
  • 如何设置 log4net 每天将我的文件记录到不同的文件夹中?

    我想将每天的所有日志保存在名为 YYYYMMdd 的文件夹中 log4net 应该根据系统日期时间处理创建新文件夹 我如何设置它 我想将一天中的所有日志保存到 n 个 1MB 的文件中 我不想重写旧文件 但想真正拥有一天中的所有日志 我该如
  • 为什么 gcc 抱怨“错误:模板参数 '0' 的类型 'intT' 取决于模板参数”?

    我的编译器是gcc 4 9 0 以下代码无法编译 template
  • 使用 %d 打印 unsigned long long

    为什么我打印以下内容时得到 1 unsigned long long int largestIntegerInC 18446744073709551615LL printf largestIntegerInC d n largestInte
  • 使用 C# 读取 Soap 消息

  • 如果没有抽象成员,基类是否应该标记为抽象?

    如果一个类没有抽象成员 可以将其标记为抽象吗 即使没有实际理由直接实例化它 除了单元测试 是的 将不应该实例化的基类显式标记为抽象是合理且有益的 即使在没有抽象方法的情况下也是如此 它强制执行通用准则来使非叶类抽象 它阻止其他程序员创建该类
  • 方法优化 - C#

    我开发了一种方法 允许我通过参数传入表 字符串 列数组 字符串 和值数组 对象 然后使用这些参数创建参数化查询 虽然它工作得很好 但代码的长度以及多个 for 循环散发出一种代码味道 特别是我觉得我用来在列和值之间插入逗号的方法可以用不同的
  • 如何部署“SQL Server Express + EF”应用程序

    这是我第一次部署使用 SQL Server Express 数据库的应用程序 我首先使用实体 框架模型来联系数据库 我使用 Install Shield 创建了一个安装向导来安装应用程序 这些是我在目标计算机中安装应用程序所执行的步骤 安装

随机推荐

  • VS 2010 和 VS 2012 中的不同 LINQ 答案

    下面给出的答案在VS 2010中为1 在VS 2012中为2 我个人认为应该是2 我不确定这里发生了什么 using System Linq using System Text using System Threading Tasks us
  • 如何获取有子链接的文本?

    我目前正在尝试找出如何获取具有子项的链接的文本 我的 html 看起来很像这样 a href The text I want to get span something I don t want to get span a 我只想获取 我想
  • 授予 IIS 以管理员身份运行的权限(以便从写入文件夹的 Web .exe 运行)

    我有一个 APImvc4通过调用 exe 文件 过程 class 这个 exe使用log4net 然后运行另一个 exe 将文件导出到目录和子目录 在该过程结束时 exe 将发布到 http API Process p new Proces
  • 忽略(不提交)Git 跟踪的本地删除的文件

    我需要从 Git 存储库跟踪的文件系统中删除文件 并且希望将该文件保留在 Git 存储库中不变 不提交到存储库 对于本地修改的文件来说很容易 我使用更新索引的假定未更改选项并且它工作得很好 我需要对已删除的文件进行相同的行为 我尝试过这个但
  • Python SSL 套接字服务器

    我想设置一个基本的 ssl 验证套接字服务器来进行一些网络通信 我收到以下错误 它似乎来自 SSLIOStream 在阅读之前没有握手 File simple ssl server py line 70 in connection read
  • 制作一个覆盖整个页面的div

    我想制作一个覆盖整个页面的 div 我设置了 height 100 的 css 样式 但这仅覆盖了可视区域 我希望当我向下滚动时它也覆盖该区域 Use position fixed这样你的 div 将持续保持在整个可视区域 给你的div一个
  • Express 会话未持续

    我正在尝试在节点中建立一个基本的会话系统 这是我到目前为止所得到的 app js app use express cookieParser stackoverflow app use express session 我在 ajax js 中
  • JQuery:在整个对象之前插入

    下面的代码用于选择特定对象并将其插入到 sharepoint 2010 中员工目录项列表中的所有对象之前 如果职位名称在列表中managerTitles 如果此人尚未准备好 则将其设为列表中的第一个 if inArray jobTitle3
  • “UnexpectedTagNameException”和 Element 应该是“select”,但通过 Selenium java 使用“Select”函数却出现“div”错误

    在这种形式下 下拉选择不起作用 在上图中 我想选择 借贷能力 我为它编写代码 public static void main String args throws InterruptedException WebDriver driver
  • 使用 GPUImagePoissonBlendFilter 进行混合

    我尝试使用 GPUImage 框架的 GPUImagePoissonBlendFilter 在我的脸部混合应用程序中混合两个脸部 这是我的代码 void applyPoissonBlendToImage UIImage rearFace w
  • 在 iOS 中的 Safari 中打开本地 PDF

    假设 myURL 指向通过执行以下操作获得的 PDF myURL NSBundle mainBundle URLForResource my withExtension PDF 我可以调用 UIApplication sharedAppli
  • Python 析构函数未调用

    任何人都知道如何让我的析构函数在对象销毁时调用 def del self os unlink self pidfile 场景 有一个运行进程的守护进程 守护进程收到一个 SIGTERM 并立即向 Process 发送一个 SIGTERM 进
  • ubuntu下安装pycairo

    由于某种原因 我无法让 python 找到开罗 当我执行 waf 配置时 我得到了 Setting top to home user pycairo py2cairo 1 10 0 Setting out to home user pyca
  • 如何验证文本区域中的模式匹配?

    当我在 javascript 中使用 textarea checkValidity 或 textarea validity valid 且值无效时 这两个总是返回 true 我做错了什么
  • 如何在 Android 应用程序中将图像上传到 FTP 服务器?

    是否可以将图像从我的 Android 应用程序上传到 FTP 服务器 该图像已经使用相机捕获 在桌面应用程序中 我们使用 FTP 客户端将任何文件 图像上传到实时服务器 我们如何在 Android 应用程序中做类似的事情 使用这个对我来说效
  • 在蓝牙打印机上打印

    我需要在蓝牙打印机上打印 我已经有一个用于 Windows 移动平台的程序 它通过蓝牙将命令和数据发送到斑马 RW 420 打印机 http www zebra com id zebra na en index products print
  • 如何使用 Spring 的 @Cacheable 和 Aerospike 作为缓存?

    我只想用Aerospike作为后备缓存Spring CacheManager 当我不打算使用时我应该使用 spring data aerospikeAerospike作为数据存储但仅作为缓存 有没有类似的实现HazelcastCacheMa
  • 使用 .NET Core(API 和 HTTP)创建 Azure AD 应用程序和服务主体

    继续我以编程方式创建 Azure 应用程序的探索 这从https stackoverflow com a 44753728 1332416 https stackoverflow com a 44753728 1332416 我的核心获得了
  • 所有 C# 转换都会导致装箱/拆箱吗

    我很想知道 C 中的所有强制转换是否都会导致装箱 如果不是 那么所有强制转换都是成 本高昂的操作吗 示例取自装箱和拆箱 C 编程指南 http msdn microsoft com en us library yz2be5wk aspx i
  • 可以从纯虚函数返回引用吗?

    class I public virtual std wstring const GetName const 0 通常 实现此接口的客户端将其名称包含在其主体中 一切都很好 但有时 GetName 的结果是在函数执行期间计算的 使用静态变量