2015-05-04 128 views
7

我有一个简单的Qt项目。我include <memory>但std :: unique_ptr不可用。我知道我应该使用Qt特定的智能指针,但我需要包含一个包含std :: unique_ptr的较大项目。Qt项目中的unique_ptr

我该怎么办?

谢谢!

+1

Qt拥有了自己的智能和共享指针,如果你没有一个C++编译器11。 – drescherjm

+0

你使用什么编译器?你在使用C++ 11/14吗? – NathanOliver

+0

我如何从Qt Creator中看到? – yonutix

回答

7

智能指针需要C++ 11。根据您的Qt版本:

CONFIG += c++11添加到您的.pro文件,如果您有Qt5及以上。它需要包括<memory>西蒙提到。

如果您有QT5的早期版本,你可以添加以下:
QMAKE_CXXFLAGS += -std=c++11

+1

它与QMAKE_CXXFLAGS + = -std = C++ 11 – yonutix

3

包括内存:

#include <memory> 

配置你的Qt项目中使用C++ 11。加到你的.pro文件中:

CONFIG += c++11 

如果这样还不能解决问题,请添加详细的错误信息。

+0

错误:'unique_ptr'不是'std'的成员 – yonutix

+1

我的.pro文件看起来像这样:http://pastebin.com/wMKpDHAX但它似乎不起作用(包括内存) – yonutix

+0

我该如何做cmake项目打开了吗? – raaj