如何确保weak_ptr不是从临时的shared_ptr创建的?

2024-02-27

我们来上课吧Foo和方法void use_weak_ptr(std::weak_ptr<Foo>)。有没有办法确保(最好是在编译时)该方法不会被临时调用?

允许这样做:

auto shared = std::make_shared<Foo>();
use_weak_ptr(shared);

不允许这样做:

use_weak_ptr(std::make_shared<Foo>());

Edit: Godbolt https://godbolt.org/z/MoG73eTfo并提出建议。


你“毒害”了右值的重载解析

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

如何确保weak_ptr不是从临时的shared_ptr创建的? 的相关文章

  • 将复选框添加到 UniformGrid

    我正在尝试将复选框动态添加到 wpf 中的统一网格中 但看起来网格没有为它们分配足够的空间 所以它们都有点互相重叠 这就是我将它们添加到后面的代码中的方法 foreach string folder in subfolders PathCh
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • 无法使用已与其底层 RCW 分离的 COM 对象。在 oledb 中

    我收到此错误 但我不知道我做错了什么 下面的代码在backrgroundworker中 将异常详细信息复制到剪贴板 System Runtime InteropServices InvalidComObjectException 未处理 通
  • Qt-Qlist 检查包含自定义类

    有没有办法覆盖加载自定义类的 Qt QList 的比较机制 即在 java 中你只需要重写一个比较方法 我有一个带有我的自定义类模型的 QList QList
  • 获取按下的按钮的返回值

    我有一个在特定事件中弹出的表单 它从数组中提取按钮并将标签值设置为特定值 因此 如果您要按下或单击此按钮 该函数应返回标签值 我怎样才能做到这一点 我如何知道点击了哪个按钮 此时代码返回 DialogResult 但我想从函数返回 Tag
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 使用 System.Text.Json 即时格式化 JSON 流

    我有一个未缩进的 Json 字符串 例如 hash 123 id 456 我想缩进字符串并将其序列化为 JSON 文件 天真地 我可以使用缩进字符串Newtonsoft如下 using Newtonsoft Json Linq JToken
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • C# 中的递归自定义配置

    我正在尝试创建一个遵循以下递归结构的自定义配置部分
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • Github Action 在运行可执行文件时卡住

    我正在尝试设置运行google tests on a C repository using Github Actions正在运行的Windows Latest 构建过程完成 但是当运行测试时 它被卡住并且不执行从生成的可执行文件Visual
  • clang 实例化后静态成员初始化

    这样的代码可以用 GCC 编译 但 clang 3 5 失败 include
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • 为什么 C# Math.Ceiling 向下舍入?

    我今天过得很艰难 但有些事情不太对劲 在我的 C 代码中 我有这样的内容 Math Ceiling decimal this TotalRecordCount this PageSize Where int TotalRecordCount
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问
  • 使用按位运算符相乘

    我想知道如何使用按位运算符将一系列二进制位相乘 但是 我有兴趣这样做来查找二进制值的十进制小数值 这是我正在尝试做的一个例子 假设 1010010 我想使用每个单独的位 以便将其计算为 1 2 1 0 2 2 1 2 3 0 2 4 虽然我

随机推荐

  • Rmarkdown/knitr subfigure 不同的图形尺寸

    我试图在 Rmarkdown 中实现子图的不同高度和宽度 我希望只是提供fig height and fig width每个向量都可以工作 因为这似乎确实适用于out height and out width title Untitled
  • 从自定义属性修饰的属性中获取价值?

    我编写了一个自定义属性 用于类的某些成员 public class Dummy MyAttribute public string Foo get set MyAttribute public int Bar get set 我可以从类型中
  • Java Swing - 从另一种方法设置 Jlabel 文本

    我对 Java 和 Swing 还很陌生 我正在使用 Windowbuilder 来尝试我的一些 GUI 想法 但在尝试设置 Jlabel 的文本时遇到了问题 Windowbuilder 在initialize 方法中自动创建了一个名为pa
  • Java 构造函数链接 [重复]

    这个问题在这里已经有答案了 你好 我刚刚学习 Java 中的构造函数链 并且有一些问题 首先 有人可以解释一下我什么时候需要使用这个吗 我真的无法想象出一种情况 在此示例中 在没有参数的构造函数中 我调用另一个构造函数 我如何访问这个新的
  • bitbucket 剥离了 git 修订

    推送到 bitbucket 后 我 的同事提交被删除 并且 bitbucket 新闻源上出现一条消息 stripped 6f9de58aa748 from projektA 4 hours ago stripped 54dae89de600
  • Android 本机代码如何针对多种处理器类型?

    据我了解 Android 上的本机代码是直接与特定设备的处理器一起工作的代码 因此 如果我想利用某个处理器 我会使用本机代码 但是 如果我想制作一个包含本机代码但面向多个处理器的应用程序 会发生什么情况 我是否必须制作多个应用程序 每个架构
  • 如何将图像重置到原始位置

    我正在使用 TouchImageView 类 位于https github com MikeOrtiz TouchImageView https github com MikeOrtiz TouchImageView 我使用这个类对我的图像
  • 指定的容器不存在

    我陷入了这个错误The specified container does not exist 让我解释 CloudBlobClient blobStorage GetBlobStorage upload CloudBlockBlob blo
  • 如何隐藏RCP中的默认菜单?

    我是 Eclipse RCP 插件开发的新手 我用自己的视角编写了一个插件 并在其中添加了视角特定的菜单 我的问题是如何隐藏 Eclipse 中提供的默认菜单 例如 编辑 导航 搜索 项目 我尝试使用 并提出我的观点具体条件 以及菜单贡献
  • 未搜索SBT maven本地存储库

    我想从本地 Maven 存储库加载一些库 我已经配置了 sbt 0 13 plugins plugins sbt resolvers Resolver sonatypeRepo snapshots resolvers Resolver ma
  • Swift - 如何使用 XIB 文件创建自定义 viewForHeaderInSection?

    我可以像下面这样以编程方式创建简单的自定义 viewForHeaderInSection 但我想做更复杂的事情 可能与不同的类连接并像 tableView 单元格一样访问它们的属性 很简单 我想看看我在做什么 func tableView
  • 禁用 WebView 中的可选链接

    我有一个webView包含在一个scrollView 然后一切都包含在一个viewPager 当我跳到下一个视图页面时 页面中间的链接将被聚焦 文本周围以橙色突出显示 这会导致页面跳转到最近的链接 有没有办法禁止链接在触摸时聚焦 我已经尝试
  • 在Excel中计算不同值 - 频率函数

    我的任务是计算 Excel 中某一列中不同字符串的数量 后来快速谷歌搜索发现了以下公式here http office microsoft com en us excel HP030561181033 aspx Count 20the 20
  • 升级编译sdk版本后findViewById出错

    升级后编译SDK版本26 全部findViewById显示错误 没有足够的信息来推断 fun 中的参数 T findViewById id Int T 这是因为从 Android O 开始 我们不需要强制转换它 有几种选择 代替 val t
  • 我可以在同一台计算机上安装两个不同版本的 Visual Studio 吗?

    我可以在同一台计算机上安装 Visual Studio 2005 和 2010 吗 会造成什么问题吗 是的 你可以这样做 我在一台机器上安装了VS 2005 2008和2010 它们都是独立工作的 但是 在此之前 请记住 低版本制作的项目只
  • 如何重定向到 404 上的特定网址

    error 404 def error404 error return Nothing here sorry 这是响应404的方式bottle framework 但是在 404 上我想重定向到特定的 url 说http abc com h
  • 为什么不能创建抽象类的对象?

    这是我脑海中的一个场景 我用谷歌搜索了很多 但得到了像这样的答案 抽象类没有实现方法 所以我们无法创建对象 抽象 一词指示编译器不要创建该类的对象 但是在一个简单的类中 我们拥有所有虚拟方法 能够创建对象 此外 我们可以定义不同的访问权限来
  • 从 HSV 直方图中获取主色值

    我正在根据如下图像创建 HSV 直方图 void processImageWithHsv Mat image Mat image hsv cvtColor image image hsv CV BGR2HSV int hbins 50 sb
  • 如何停止 IIS 要求对本地主机上的默认网站进行身份验证

    我在 Windows XP Pro SP2 上安装了 IIS 5 1 此外 我还安装了带有 NET 3 5 的 VS 2008 Express 显然 IIS 已针对 NET 3 5 自动配置为 ASP NET 问题是每当我访问http lo
  • 如何确保weak_ptr不是从临时的shared_ptr创建的?

    我们来上课吧Foo和方法void use weak ptr std weak ptr