C++11 gcc 4.3.4是否支持唯一的ptr?
我一直在尝试在本地CygWin安装中使用g++编译器实现PIMPL,我开始认为这可能是因为我正在运行g++4.3.4,因为它的C++11支持还不够完美 使用基线代码(来自MSDN): 如果我替换C++11 gcc 4.3.4是否支持唯一的ptr?,c++11,g++,unique-ptr,C++11,G++,Unique Ptr,我一直在尝试在本地CygWin安装中使用g++编译器实现PIMPL,我开始认为这可能是因为我正在运行g++4.3.4,因为它的C++11支持还不够完美 使用基线代码(来自MSDN): 如果我替换-std=gnu++0x,我也会得到这个结果 事实上,当我试图编译哪怕是最简单的文件时,从另一个如此简单的答案中得出: #include <iostream> #include <memory> int main() { std::unique_ptr<int>
-std=gnu++0x
,我也会得到这个结果
事实上,当我试图编译哪怕是最简单的文件时,从另一个如此简单的答案中得出:
#include <iostream>
#include <memory>
int main() {
std::unique_ptr<int> up( new int( 30 ) );
}
#包括
#包括
int main(){
标准::唯一性(新的整数(30));
}
它抱怨unique\u ptr
不在std
命名空间中
没有unique\u ptr
的条目,但从网络上看,它已经存在了很长一段时间,至少从4.4开始
所以我的问题是,首先,在什么版本的gcc
中添加了对unique\u ptr
的支持
第二,我是否只是在代码中犯了一些愚蠢的错误,用了错误的方法?在第一个示例中,
unique\u ptr
上缺少std:
限定符。第二个例子
>代码> UnQuyGPPT/<代码>在GCC标准C++库中未在4.4:
之前 <>改进了对即将到来的ISOC++标准C+++0x的实验支持,包括:
,唯一性\u ptr
添加、异常传播,以及对
和
中新字符类型的支持
在第一个示例中,
unique\u ptr
上缺少std::
限定符。第二个例子
>代码> UnQuyGPPT/<代码>在GCC标准C++库中未在4.4:
之前 <>改进了对即将到来的ISOC++标准C+++0x的实验支持,包括:
,唯一性\u ptr
添加、异常传播,以及对
和
中新字符类型的支持
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'
#include <iostream>
#include <memory>
int main() {
std::unique_ptr<int> up( new int( 30 ) );
}