C ++使用未声明的标识符'make_unique'

时间:2016-04-02 03:07:38

标签: c++ qt-creator unique-ptr

我在构建时不断收到以下错误,

  

使用未声明的标识符'make_unique'          m_planet = make_unique();

我的头文件,它给出了错误,

#include "planet.h"
#include <memory>

using namespace std;

class PlanetBuilder
{
public:
    PlanetBuilder();
    virtual ~PlanetBuilder();

    void createNewPlanetProduct() {
        m_planet = make_unique<Planet>();
    }

protected:
    unique_ptr<Planet> m_planet;
};

#endif // PLANETBUILDER_H

我正在运行QtCreator 3.6.0,在Mac和Windows平台上都尝试过,错误是一致的......我哪里出错?

2 个答案:

答案 0 :(得分:1)

make_unique需要#include <memory> 但是,既然您这样做了,我会认为您没有使用C ++ 14或更高版本。 尝试在您的制作文件中添加以下标志。

-std=c++14

答案 1 :(得分:0)

对于使用#include的当前QT,我是5.7。 通过以下链接,您会发现更多信息。 QScopedPointer link