gcc 4.3.4 支持 unique_ptr 吗?

2024-03-20

我一直在尝试在本地 CygWin 安装上使用 g++ 编译器来实现 PIMPL,并且我开始认为这可能是我正在运行 g++ 4.3.4 的事实,因为它的 C++11 支持少于完美的。

使用非常基线的代码(来自 MSDNhere http://msdn.microsoft.com/en-us/library/hh438477.aspx):

my_class.h:
    #include <memory>
    class my_class {
    public:
        my_class();
    private:
        class impl; unique_ptr<impl> pimpl(new impl);
    };

my_class.cpp:
    #include "my_class.h"
    class my_class::impl { int my_int; };
    my_class::my_class(): pimpl( new impl ) {};

我尝试编译g++ -std=c++0x -o my_class.o my_class.cpp并最终得到:

In file included from my_class.cpp:1:
my_class.h:8: error: ISO C++ forbids declaration of 'unique_ptr' with no type
my_class.h:8: error: invalid use of '::'
my_class.h:8: error: expected ';' before '<' token
my_class.cpp: In constructor 'my_class::my_class()':
my_class.cpp:5: error: class 'my_class' does not have any field named 'pimpl'

如果我替换我也明白-std=gnu++0x.

事实上,当我尝试编译最简单的文件时,从另一个 SO 答案中提取:

#include <iostream>
#include <memory>
int main() {
    std::unique_ptr<int> up( new int( 30 ) );
}

它抱怨说unique_ptr不在std命名空间。

The gcc c++11 支持页面 http://gcc.gnu.org/projects/cxx0x.html没有条目unique_ptr不过从网上看,这个东西已经存在很长一段时间了least从 4.4 开始。

所以我的问题是,首先,在什么版本gcc是支持unique_ptr added?

其次,我是否只是在代码中犯了一些愚蠢的错误,以错误的方式使用它?


在你的第一个例子中,std::缺少限定符unique_ptr。第二个例子是正确的 C++11 http://coliru.stacked-crooked.com/view?id=654132de92cce5f73a6c4998ce99a049-e1204655eaff68246b392dc70c5a32c9.

根据GCC 4.4 发行说明 http://gcc.gnu.org/gcc-4.4/changes.html, unique_ptr4.4 之前的 GCC 标准 C++ 库中不存在:

改进了对即将推出的 ISO C++ 标准 C++0x 的实验支持,包括:

...

  • unique_ptr, <algorithm>添加、异常传播以及对新字符类型的支持<string> and <limits>.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

gcc 4.3.4 支持 unique_ptr 吗? 的相关文章

随机推荐

  • Django 以 JSON 形式返回单个记录

    我创建了一个表单 用于在我们的网络管理中添加有关客户的注释 我正在使用 jQuery 和 Ajax 来提交 for 我希望 Django 视图返回新添加的注释 记录 以便我可以将其附加到客户注释表中 我的 Ajax 发送正在工作 并且正在保
  • 使用 php Imagemagick 调整图像大小

    我正在尝试使用 imagemagick 的函数 thumbnailImage 调整图像大小 现在 我之后没有对图像进行任何操作 只是回显新的尺寸以查看它是否有效 到目前为止 它还不起作用 这是我的代码 注意 它确实呼应了原始尺寸 但不是新尺
  • 如何让浏览器提示保存密码?

    嘿 我正在开发一个 Web 应用程序 它有一个登录对话框 其工作原理如下 用户点击 登录 登录表单 HTML 通过 AJAX 加载并显示在页面的 DIV 中 用户在字段中输入用户名 密码并单击提交 这不是一个
  • Django 过滤器测试

    class BusinessPartnerFilter SilBaseFilter active django filters BooleanFilter name date deactivated lookup expr isnull p
  • Drop 事件在 Chrome 中未触发

    似乎 drop 事件没有在我预期的时候触发 我假设当被拖动的元素释放到目标元素上方时 会触发 drop 事件 但情况似乎并非如此 我有什么误解吗 http jsfiddle net LntTL http jsfiddle net LntTL
  • 如果我在具有备用信任路径的链中的附加证书已过期,会发生什么情况?

    我有一个由 Sectigo 前 Comodo Positive SSL 产品 颁发的证书 状态良好 1年7个月后到期 该证书由 Sectigo RSA 域验证安全服务器 CA 颁发 CA 链中有两个中间证书 由供应商提供 最近的 Secti
  • Git 合并错误“无法提交,因为您有未合并的文件”

    我忘了git pull编辑之前我的代码 当我提交新代码并尝试推送时 出现错误 无法推送 那时我做了一个git pull这使得一些有冲突的文件突出显示 我删除了冲突 但我不知道从这里该做什么 我尝试过了git commit再次但它说 不可能提
  • ChartJS 如何设置X轴的最大标签?

    我从数组接收图表数据 其中存储了从 2016 年 1 月到 2018 年 12 月的日期 在图表中 它显示 3 年的所有月份 但我只需要展示1年 有任何想法吗 在这里 我传递一个数组并更改月份的单位 还有显示格式 chartHour con
  • JUnit 测试异常[重复]

    这个问题在这里已经有答案了 我对java真的很陌生 我正在构造函数上运行一些 JUnit 测试 构造函数是这样的 如果它的参数之一被赋予 null 或空字符串 它就会抛出异常 当我在 JUnit 中使用 null 或空字符串参数测试此构造函
  • 调用 save() 时 Django 模型不保存

    所以我试图保存 django 模型 由于某种原因我只收到 500 内部服务器错误 事情是 如果我评论 Social auth save 它可以工作并且我可以操纵 对象 但不保存它 为什么会发生这种情况 我正在使用 django tastyp
  • 是否有与 Add-MailboxPermission 等效的 REST(图形或其他)?

    现在我有一个 PS 脚本正在检查邮箱权限 如果缺少 则会添加权限 在 C 中 想调用以下等效项 获取邮箱权限 如果需要 添加权限 例如 添加MailboxPermission Identity email User AdminUserNam
  • 如何在 Bash 中重复一个字符?

    我怎样才能做到这一点echo perl E say x 100 您可以使用 printf 0s 1 100 这是如何运作的 Bash 扩展 1 100 所以命令变成 printf 0s 1 2 3 4 100 我已将 printf 的格式设
  • 如何使用 socket.io 将所有客户端重定向到另一个页面?

    我正在开发一款在线多人卡牌反人类游戏 React 在前面 React 路由器用于重定向 Node 在后面 当大厅中的一个用户时 我试图重定向 大厅 或房间中的所有客户端单击 开始 但现在只有单击开始的用户被重定向 这个想法是有人会设置一个新
  • 如何使用 scipy.spatial.Delaunay 将所有点包含到无错误三角网格中?

    我正在测试scipy spatial Delaunay并且无法解决两个问题 网格有错误 网格不包含所有点 代码和绘图图像 import numpy as np from scipy spatial import Delaunay delau
  • rsync 传输后删除发送端的文件

    我想从远程机器下载大量数据 我希望每次文件下载完成时都会删除远程计算机上的数据 我怎么做 rsync 是否有一个标志来执行此操作 您需要通过 remove source files的选项rsync命令 它说rsync从发送端删除属于传输一部
  • 如何配置 Jetty 在类更改时重新加载 WebAppContext

    我正在开发一个Web应用程序 当我在Eclipse下开发时 我运行Jetty作为开发和测试环境 当我对 Java 类进行更改时 Eclipse 会自动将它们编译到构建目录 但 Jetty 在我停止并启动服务器之前不会看到更改 我知道 Jet
  • Ant需要tools.jar但找不到它

    我正在为 Java 程序构建一个开发环境 在第一次尝试 Ant 构建脚本后 我收到了以下错误 Unable to locate tools jar Expected to find it in usr lib jvm java 6 open
  • 如何从 Rust 的 Cargo 中的集成测试访问二进制文件的函数

    在我的货运项目中 我定义了两个二进制目标 如何从集成测试访问二进制文件中定义的函数 package name passman version 0 1 0 edition 2018 bin name passmand path src dae
  • 访问 pyModbus 事务中的原始字节

    我有一个 python 脚本 可以使用 pymodbus 库处理 Modbus 事务 为了进行故障排除 我想打印发送和接收到设备的原始字节 最好以十六进制格式 这是简化的代码 请参阅底部的注释以获取我想要得到的示例 我使用了 TCP 客户端
  • gcc 4.3.4 支持 unique_ptr 吗?

    我一直在尝试在本地 CygWin 安装上使用 g 编译器来实现 PIMPL 并且我开始认为这可能是我正在运行 g 4 3 4 的事实 因为它的 C 11 支持少于完美的 使用非常基线的代码 来自 MSDNhere http msdn mic