C++ 按常量引用传递并按常量引用返回

2023-11-24

我想了解退货是否有任何好处const参考。我有一个阶乘函数,通常如下所示:

unsigned long factorial(unsigned long n)
{
    return (n == 0) ? 1 : n * factorial(n - 1);
}

我假设当我们经过时性能会有所提高const参考,我们返回一个const参考...但是const-正确性always让我困惑。

const unsigned long & factorial(const unsigned long& n)
{
    return (n == 0) ? 1 : n * factorial(n - 1);
}

返回是否有效const参考?此外,有人可以告诉我:这有好处吗?


这是无效的。你不能return对局部变量的引用。

MSVS C++ 编译器甚至给出以下警告:

main.cc : warning C4172: returning address of local variable or temporary

不太确定 GCC,但结果可能是一样的。

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

C++ 按常量引用传递并按常量引用返回 的相关文章

  • CMake 找不到请求的 Boost 库

    既然我已经浏览了其他人的解决方案几个小时 但找不到适合我的问题的正确答案 我想将我的具体问题带给您 我正在尝试使用 CMake 构建 vsomeip 为此 我之前构建了 boost 1 55 但是 我在 CMake 中收到以下错误 The
  • json.net自定义jobject反序列化

    我正在尝试使用 JsonConvert DeserializeObject string 将字符串反序列化为可与动态一起使用的 jobject 来动态访问 json 文档 但是我想避免知道文档的大小写 以便我可以输入 dynamic doc
  • 在 Java 中创建 T 的新实例

    在C 中 我们可以定义一个泛型class A
  • 在现代 C++ 中,临时生命周期延长何时有用?

    在 C 中 您可以将函数的返回值 返回值 而不是引用 绑定到 const 引用 并且代码仍然有效 因为该临时对象的生命周期将延长到作用域末尾 例如 std string get string return abc void f const
  • 解析 JWT 令牌以仅获取有效负载内容,无需 C# 或 Blazor 中的外部库

    我正在使用 Blazor 编写可以访问 JWT 的客户端应用程序 我想知道一种简单的方法来读取令牌有效负载内容而不添加额外的依赖项 因为我不需要其他信息 也不需要验证令牌 我认为解析有效负载内容应该足够简单 只需将其写入方法即可 JwtTo
  • 检测到堆栈崩溃

    我正在执行我的 a out 文件 执行后 程序运行一段时间 然后退出并显示消息 stack smashing detected a out terminated Backtrace lib tls i686 cmov libc so 6 f
  • C# 开源 NMEA 解析器 [已关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 C 开源 NMEA 解析器 嗯 我自己也不熟悉 但是一些快速搜索显示了一个代码项目 htt
  • 使用 LINQ 更新 IEnumerable 对象的简单方法

    假设我有一个这样的业务对象 class Employee public string name public int id public string desgination public int grade List
  • 获取 boost Spirit 语法中的当前行

    我正在尝试使用 boostspirit 获取正在解析的文件的当前行 我创建了一个语法类和结构来解析我的命令 我还想跟踪在哪一行找到命令并将其解析到我的结构中 我将 istream 文件迭代器包装在 multi pass 迭代器中 然后将其包
  • C# 编译器不会优化不必要的强制转换

    前几天 在写答案的时候这个问题 https stackoverflow com questions 2208315 why is any slower than contains在这里 关于溢出 我对 C 编译器感到有点惊讶 它没有按照我的
  • 如果在解决方案中使用项目依赖项,MSBuild 不会复制引用(DLL 文件)

    我的 Visual Studio 解决方案中有四个项目 每个项目都针对 NET 3 5 对于我的问题 只有这两个项目很重要 我的基地项目 我的网络项目1 我添加了 elmah dll 引用我的基地项目在 Visual Studio 2008
  • UI 函数在快速事件完成之前触发

    我有一个停靠在 Silverlight 应用程序中的 Web 浏览器框架 有时会在其上弹出全窗口 XAML Silverlight UI 元素 我已经或多或少修复了一个老问题 即 Web 框架的内容似乎与 Silverlight 内容不能很
  • 如何对 NServiceBus.Configure.WithWeb() 进行单元测试?

    我正在构建一个 WCF 服务 该服务接收外部 IP 上的请求并将其转换为通过 NServiceBus 发送的消息 我的单元测试之一调用Global Application Start 它执行应用程序的配置 然后尝试将 Web 服务解析为 验
  • 如何在三个 IEnumerable 上使用 Zip [重复]

    这个问题在这里已经有答案了 可能的重复 使用 Linq 从 3 个集合创建项目 https stackoverflow com questions 5284315 create items from 3 collections using
  • C#6 中的长字符串插值行

    我发现 虽然字符串插值在应用于现有代码库的字符串 Format 调用时非常好 但考虑到通常首选的列限制 字符串对于单行来说很快就会变得太长 特别是当被插值的表达式很复杂时 使用格式字符串 您将获得一个可以拆分为多行的变量列表 var str
  • 引用/指针失效到底是什么?

    我找不到任何定义指针 引用无效在标准中 我问这个问题是因为我刚刚发现 C 11 禁止字符串的写时复制 COW 据我了解 如果应用了 COW 那么p仍然是一个有效的指针并且r以下命令后的有效参考 std string s abc std st
  • Linux mremap 不释放旧映射?

    我需要一种方法将页面从一个虚拟地址范围复制到另一个虚拟地址范围 而无需实际复制数据 范围很大 延迟很重要 mremap 可以做到这一点 但问题是它也会删除旧的映射 由于我需要在多线程环境中执行此操作 因此我需要旧映射能够同时使用 因此稍后当
  • 如何调试 .NET 运行时中的内部错误?

    我正在尝试调试一些处理大文件的工作 代码本身works 但 NET 运行时本身会报告零星错误 对于上下文 这里的处理是一个 1 5GB 文件 仅加载到内存中一次 在循环中处理和释放 故意尝试重现此否则不可预测的错误 我的测试片段基本上是 t
  • 如何将 SQL“LIKE”与 LINQ to Entities 结合使用?

    我有一个文本框 允许用户指定搜索字符串 包括通配符 例如 Joh Johnson mit ack on 在使用 LINQ to Entities 之前 我有一个存储过程 该存储过程将该字符串作为参数并执行以下操作 SELECT FROM T
  • 为什么匹配模板类上的部分类模板特化与没有模板匹配的另一个部分特化不明确?

    这个问题可能很难用标题中的句子来描述 但这里有一个最小的例子 include

随机推荐

  • Android + Proguard + Apache POI

    有人能够在混淆后让 Apache POI 库正常工作 我查阅了很多资料 尝试了不同的方法 但仍然得到错误 a a b a Provider com bea xml stream EventFactory not found org apac
  • 使用 Sed 替换包含字符串的整行

    我有一个文本文件 其中有一个特定的行 例如 sometext sometext sometext TEXT TO BE REPLACED sometext sometext sometext 我需要将上面的整行替换为 This line i
  • 智能感知中的自定义代码片段

    我已经开始将一些常用的代码块导出到自定义片段 有没有办法让这些显示在 IntelliSense 中 而不必使用上下文菜单或代码片段管理器中的代码片段浏览器 起初 我以为这与 ReSharper 有关 但当我禁用 ReSharper Inte
  • Android webkit 浏览器中的宽度不正确

    我注意到 Android 默认浏览器上有一个问题 100 宽度实际上可能会超出屏幕边缘 这是一个最小的测试用例 div class separator width 100 style border 2px padding 2px nbsp
  • 如何编写一个返回仅存在于类中的类型的成员函数?

    我实际上正在用 C 实现一个双向链表 这是某种 MWE namespace mynamespace template
  • 哪里有可靠的注册表项来查找 Excel 2007 的安装位置?

    哪里有可靠的注册表项来查找 Excel 2007 的安装位置 怎么样 HKEY LOCAL MACHINE SOFTWARE Microsoft Office X 0 Common InstallRoot 其中包含一个名为 Path 的键
  • django-rest-framework:如何序列化已包含 JSON 的字段?

    我对 django rest framework 很陌生 所以需要一些帮助 我有一个带有 TextField 的对象 该对象是包含 JSON 的字符串 我正在使用 django rest framework 将整个对象序列化为 JSON 然
  • 为什么禁止内联脚本(内容安全策略)?

    我想知道规范中的引用 https dvcs w3 org hg content security policy raw file tip csp specification dev html 为了获得最大的好处 作者需要将所有内联脚本和样式
  • Keras:制作神经网络来查找数字的模数

    我是一位经验丰富的 Python 开发人员 但在机器学习方面完全是新手 这是我第一次尝试使用 Keras 你能告诉我我做错了什么吗 我正在尝试制作一个神经网络 它接受二进制形式的数字 并在除以 7 时输出其模数 我的目标是执行一个非常简单的
  • HTTP重定向代码之间的区别

    我不清楚各种 HTTP 3XX 重定向代码之间的差异 是的 我已经阅读了规范 但标准与实际实践之间似乎存在一些差异 The 301重定向代码似乎足够清楚 这意味着资源已永久移动到另一个 URI 并且将来的请求应使用该 URI And the
  • IIS HTTP 到 HTTPS 相对重定向

    我最近为我的网站获得了 SSL 证书 并希望将所有流量重定向到 HTTPS 我已经拥有了一切要去的地方https mydomain com但如果有人进来http mydomain com anotherpage它会删除其他页面 只将用户带到
  • 是否有一种相对简单的方法可以在 C# 或 PowerShell 中完成 CD 或 DVD?

    首先 对术语进行一些澄清 经过最终确定 我的意思并不是要结束会议 而是要结束会议 我的意思是 将导出内容写入 CD 或 DVD 时 信息将无法再通过通常的方式 Roxio Nero Windows 资源管理器等 添加到其中 我对此做了相当多
  • 获取字符串中某个索引之后第一个检测到的空格的索引

    在要格式化的字符串中 主要是用不同的符号替换字符以在 UI 上进行渲染测试 我必须检测 然后跳过此 字符中的第一个空格的所有字符 并且必须对字符串中的所有实例重复该操作 E g abcd 1 s efgh 2 d ijkl在这个字符串中 我
  • 为什么 memcpy() 和 memmove() 比指针增量更快?

    我正在复制 N 个字节pSrc to pDest 这可以在单个循环中完成 for int i 0 i lt N i pDest pSrc 为什么这比memcpy or memmove 他们使用什么技巧来加快速度 因为 memcpy 使用字指
  • 假执行Powershell脚本

    在 Fake 构建自动化工具中执行 Powershell 脚本的最佳方法是什么 我觉得这个问题应该有一个明显的答案 但一直没能通过搜索找到任何东西 正如您在评论中提到的 使用PowerShell类使这变得非常容易 r FakeLib dll
  • 如何在反序列化期间以编程方式选择构造函数?

    我想反序列化System Security Claims Claim对象按以下方式序列化 Issuer LOCAL AUTHORITY OriginalIssuer LOCAL AUTHORITY Type http my org ws 2
  • 如何标准化 Lucene 分数?

    我需要将 Lucene 分数标准化为 0 到 1 之间 例如 随机查询返回以下分数 8 864665 2 792687 2 792687 2 792687 2 792687 0 49009037 0 33730242 0 33730242
  • JavaScript 中的“变量 = 变量 || {}”是什么意思 [重复]

    这个问题在这里已经有答案了 变量的初始化代表什么 var variable variable 应该如何以及何时使用 该行代码执行以下操作 IF variable未定义 或具有错误值 THEN将其设置为空对象 ELSE什么都不做 从技术上讲
  • java.lang.AbstractMethodError:javax.ws.rs.core.UriBuilder.uri

    我尝试启动应用程序但使用Tomcat 7我有一个这样的例外 我认为这可能是Maven dependency 但我确定 如果有人知道发生了什么事 请回答 例外 message Servlet execution threw an except
  • C++ 按常量引用传递并按常量引用返回

    我想了解退货是否有任何好处const参考 我有一个阶乘函数 通常如下所示 unsigned long factorial unsigned long n return n 0 1 n factorial n 1 我假设当我们经过时性能会有所