C++ make_shared 不可用

2023-11-30

虽然我有std::tr1::shared_ptr<T>在我的编译器中可用,但我没有 有make_shared.

有人可以指出我正确的实施吗make_shared?我懂了 我需要使用 varargs 为 T 的构造函数提供参数。

但我的编译器中也没有可用的可变参数模板。


如果你的编译器没有提供 make_shared 的实现,并且你不能使用 boost,并且你不介意对象和引用计数器缺乏单一分配优化,那么 make_shared 是这样的:

没有可变参数模板支持:

// zero arguments version
template <typename T>
inline shared_ptr<T> make_shared()
{
  return shared_ptr<T>(new T());
}

// one argument version
template <typename T, typename Arg1>
inline shared_ptr<T> make_shared(Arg1&& arg1)
{
  return shared_ptr<T>(new T(std::forward<Arg1>(arg1)));
}

// two arguments version
template <typename T, typename Arg1, typename Arg2>
inline shared_ptr<T> make_shared(Arg1&& arg1, Arg2&& arg2)
{
  return shared_ptr<T>(new T(std::forward<Arg1>(arg1),
                             std::forward<Arg2>(arg2)));
}

// ...

如果您的编译器不支持右值引用,则为每个参数创建 2 个版本:一个常量精氨酸&和一个Arg&

具有可变参数模板支持:

template <typename T, typename... Args>
inline shared_ptr<T> make_shared(Args&&... args)
{
  return shared_ptr<T>(new T( std::forward<Args>(args)... ));
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C++ make_shared 不可用 的相关文章

  • 有没有办法分析 WCF 应用程序的性能?

    我们正在尝试测量我们的系统的性能 该系统是一个使用 WCF 调用的 NET 3 5 应用程序 问题是到目前为止 我们无法分析这些调用中的方法 编写了一个 winforms 客户端应用程序来测试我们的系统 我们尝试使用ANTS 4 Profi
  • 在 C++ 中,严格别名规则中的“访问”是什么意思?

    3 10 10 说 如果一个程序试图access通过除以下类型之一之外的泛左值存储对象的值 行为未定义 然而 术语 访问 并没有在任何地方定义 在这种情况下这意味着read or 读取或修改 在 C 标准中 它被明确定义为读取或修改 然而在
  • 尝试将元素推入向量

    在头文件 我没有编写 中 已经定义了一个结构体 如下所示 struct MemoryMessage public boost counted base public FastAlloc explicit MemoryMessage Memo
  • 从空白启动时 VSTO 功能区不显示解决方案

    如果我从 文件 新建项目 菜单创建一个新的 Excel 2013 和 2016 VSTO 加载项 项目 然后单击 项目 添加新项目 gt 功能区 可视化设计器 则一切正常 我启动了应用程序 我的功能区显示在 Excel 中 但是 如果我首先
  • 我应该使用函数还是无状态函子?

    这两段代码做同样的事情 如您所见 它将用于排序函数 哪个更好 我通常写后一种 但我看到一些程序员像以前那样做 struct val lessthan binary function
  • popen2()在c中如何工作?

    我尝试使用管道 叉子和 dup 在我的程序中执行 md5sume 命令 我发现总和代码运行成功 但我无法理解某些代码行 这是我的代码 int infp outfp char buf 128 if popen2 md5sum infp out
  • 平衡两轮机器人而不使其向前/向后漂移

    我正在尝试设计一个控制器来平衡 2 轮机器人 约 13 公斤 并使其能够抵抗外力 例如 如果有人踢它 它不应该掉落 也不应该无限期地向前 向后漂移 我对大多数控制技术 LQR 滑模控制 PID 等 都很有经验 但我在网上看到大多数人使用 L
  • 未定义条件编译符号

    我无法让 Visual Studio 按照我的预期运行 我创建了 2 个配置文件 一个定义了符号 FOO 另一个定义了符号 BAR 我有这个代码 static class MyClass if FOO public static strin
  • 为什么 MISRA:2012 需要函数原型?

    我想知道为什么 MISRA 2012 需要函数原型 在下面的示例中 这两个原型并不是真正必要的 include
  • 如何在 Xamarin.Mac 中执行终端命令并读入其输出

    我们正在编写一个 Xamarin Mac 应用程序 我们需要执行像 uptime 这样的命令 并将其输出读取到应用程序中进行解析 这可以做到吗 在 Swift 和 Objective C 中都有 NTask 但我似乎无法在 C 中找到任何示
  • 无论表单上的焦点控件如何,如何捕获 Keys.F1?

    我使用了 KeyDown 事件和一些简单的代码 例如if e KeyCode Keys F1 捕获在表单上按下 F1 但如果表单上有一些文本框 或者表单上有一些带有 Dock Fill 的电子表格 则上面的代码将毫无用处并且不执行任何操作
  • 为什么 OOP 中静态类的最佳实践有所不同?

    我目前正在阅读有关 Java 最佳实践的内容 我发现根据这本书 https rads stackoverflow com amzn click com 0321356683我们必须优先选择静态类而不是非静态类 我记得在 C 最佳实践中 我们
  • 在同一条线上铸造两次

    我在项目中看到了这段代码 b的类型是void void b int a int unsigned long b 这条线毫无意义吗 我的意思是 这与a int b在所有情况下 这可能会避免 64 位 Unix 系统上的编译器警告unsigne
  • 更新插入 MongoDB 时如何防止出现“_t”字段?

    我有一个应用程序 它使用 MongoDB 的 C 驱动程序将 Upsert 插入 MongoDB 数据库 当我打电话给Update函数 我无法指定我要更新的类型 然后 t字段插入元素的类型 这是我用来更新插入的代码 collection U
  • 什么是多重重继承?

    我将以下称为 多重重新继承 直接继承一个类一次 并通过继承其一个或多个后代来间接继承一次或多次 通过继承一个类的两个或多个后代来间接继承一个类两次或多次 我想知道它是否存在以及如何明确访问嵌入的子对象 1 Professional C 2n
  • lambda 表达式是多线程的吗?

    lambda 表达式是多线程的吗 假设当你将数学公式编写为 lambda 方法时 当你将其传递给另一个方法时 它会是多线程的吗 不是100 清楚你问的是什么 您是否想问 lambda 是否自然地在不同的线程上运行 如果是这样 则它们只是 S
  • 父窗体中的居中消息框[重复]

    这个问题在这里已经有答案了 有没有一种简单的方法可以在 net 2 0中将MessageBox居中于父窗体中 我在 C 中确实需要这个并发现中心消息框 C http bytes com topic c sharp answers 26712
  • jquery ajax“发布”调用

    我是 jQuery 和 Ajax 的新手 并且在 发布 方面遇到问题 我正在使用 jQuery Ajax post 调用将数据保存到数据库 当我尝试保存数据时 它将 null 传递给我的 C 方法 jQuery 看起来像这样 functio
  • 为了清楚起见,是否应该在返回类型上使用无用的类型限定符?

    当我们的头文件中有原型时 我们的静态分析工具会抱怨 返回类型上有无用的类型限定符 例如 const int foo 我们这样定义它是因为该函数返回一个永远不会改变的常量 认为 API 看起来更清晰const到位 为了清楚起见 我觉得这类似于
  • 在 WPF 树视图中获取 FullPath?

    如果我以编程方式创建 WPF TreeView 例如 TreeView treeView lt added in the designer TreeViewItem rootNode new TreeViewItem rootNode He

随机推荐

  • LuaSocket (UDP) 未接收数据报

    我正在为我正在进行的项目尝试 LuaSocket 我选择 UDP 作为我的协议 在网上寻找文档和教程 我尝试创建一个客户端 服务器对以进行测试和学习 根据我所读到的内容 以下代码应该可以工作 然而 只有服务器似乎工作正常 客户端发送消息 但
  • C++ 继承 - 无法访问基点?

    我似乎无法使用基类作为函数参数 我是否搞乱了继承 我的主要内容如下 int some ftn Foo f some code Bar b some ftn b Bar 类以这样的方式继承自 Foo class Bar Foo public
  • Instagram API - 如何检索用户在 Instagram 上关注的人员列表

    我想知道如何检索用户在 Instagram 上关注的人员列表 假设这个特定用户是我关注的人 所以我可以在 Instagram 应用程序上访问他 她的照片和他的关注者 如何使用 Instagram API 来执行此操作 这样做合法吗 进一步开
  • 在 Powershell 中确定不同时区的夏令时状态

    PowerShell 中是否有一种巧妙的方法来确定另一个时区的过去日期是否是夏令时 情况是这样的 我们的数据库位于欧洲 时间和日期是该服务器本地的 由于欧洲和美国在不同时间开始和停止 DST 因此我需要考虑这些时间的时差 谢谢你的建议 无需
  • 如何立即停止使用 ExecutorService 启动的任务?

    我尝试了许多不同的方法来立即停止使用 ExecutorService 启动的任务 但没有成功 Future
  • 修复内存泄漏

    我最近发现Delphi有一个名为ReportMemoryLeaksOnShutdown的全局变量 当设置为True时 将在应用程序关闭时检测内存泄漏 我通过阅读另一个相关问题的一些评论发现了这些信息 Delphi中检测内存泄漏的最佳工具是什
  • 自动增量不起作用

    我想创建一个表 其中包含 1 个预定义行 因此 我在 onCreate 中添加该行 以下是我的代码 private static final String CREATE CATEGORY TABLE CREATE TABLE CATEGOR
  • 当背景图像应延伸页面的整个长度时,页面右侧会出现空白[关闭]

    Closed 这个问题需要调试细节 目前不接受答案 我们的网页背景图像在 iPad iPhone 上的 FireFox 和 iOS 中的 Safari 中出现问题 页面右侧出现空白 背景图像在其他浏览器上可以很好地扩展 但我们很难在这些浏览
  • JavaScript OOP 与 jQuery

    我有对象myObject 里面我有函数execute 里面我有 ajax 其中有complete function xmlHttp 在该函数内部我想调用 setResult 它是在myObject 怎么做 function myObject
  • 文件存在并且是目录,但 listFiles() 返回 null

    的文档File listFiles 建议null仅当调用它的文件不是目录时才会返回 我有以下内容 String dir storage emulated 0 File f new File dir Log v Files f exists
  • jQuery 点击在 iOS 中不起作用?

    我在网站中添加了一些简单的 JavaScript jQuery document click function alert click 并且只有当有人点击实际的锚元素 按钮元素或带有cursor pointer CSS 具体来说 我在 Bo
  • 通过自定义 URL 方案启动 Blackberry 应用程序

    我正在研究 RIM HttpFilterRegistry 部分 任何人都可以解释如何使用 UI 入口点在本机应用程序中嵌入 协议和 packageManager 类 要求 当选择来自 BB 浏览器的 URL 时启动本机第 3 方应用程序 如
  • HTTP1.1 到 HTTP/2:标头怎么样?

    在 HTTP 1 1 中 状态行是 scheme version code reason HTTP 1 1 200 OK 我在 HPACK 规范中看到 scheme 和 status 标头 但是我没有看到任何版本或原因 难道就没有一个吗 在
  • 如何让 jquery 在循环中的每个 ajax 调用之后立即附加输出

    我想附加到一个元素并立即更新它 console log 按预期显示数据 但append 在 for 循环完成之前不执行任何操作 然后立即将其全部写入 索引 html p Page loaded p p Data p div div test
  • Python Beautiful Soup .content 属性

    BeautifulSoup content 有什么作用 我正在努力通过crummy com 的教程 我不太明白 content 的作用 我查看了论坛 但没有看到任何答案 看看下面的代码 from BeautifulSoup import B
  • 在从简单的 spring mvc json 服务输出之前,我得到了一个额外的空 {} json 对象以及 &&

    好的 我有一个基于 spring mvc 的 json Web 服务 这是一个测试应用程序 我在构建基于 spring mvc 的 Restful json 服务时从未见过这样的问题 我的测试服务的输出始终返回空 json 对象 后跟 后跟
  • Apache Tika 如何提取没有页眉和页脚内容的 html 正文

    我希望提取除页眉和页脚之外的 html 的整个正文内容 但是我遇到了异常 org xml sax SAXException 命名空间http www w3 org 1999 xhtml未申报 下面是我如上所述创建的代码at import o
  • 使用 HttpInterceptor 的 Angular 1.5 超时

    All 我正在尝试设置一个全局 httpInterceptor 以便在出现客户端超时 而不是服务器超时 时显示自定义弹出消息 我找到了这篇文章 Angular http 在 超时 配置上设置承诺 并将其转换为 httpInterceptor
  • 分析磁盘访问

    目前我正在开发一个 MFC 应用程序 该应用程序读取和写入磁盘 有时这个应用程序运行得非常快 有时却非常慢 我猜测这是因为涉及磁盘访问 因此我想对其进行分析 这方面有一些疑问 1 目前我正在使用AQTime 分析器来分析应用程序 有人尝试过
  • C++ make_shared 不可用

    虽然我有std tr1 shared ptr