2016-04-02 3 views
0

Я продолжаю получать следующее сообщение об ошибке, когда я строю,C++ Использование необъявленный идентификатор 'make_unique'

использование необъявленный идентификатор '' 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, а ошибка соответствует .. где я буду неправильно?

+3

['make_unique'] (http://en.cppreference.com/w/cpp/memory/unique_ptr/make_unique) доступен только с C++ 14. Вы компилируете с включенным C++ 14 (или более поздним) (т. Е. '-std = C++ 14' в clang или gcc)? – Cornstalks

+0

@Cornstalks, я не уверен, что мой qt-создатель основан на C++ 14, все, что я знаю, использует QT_5_6_0_MinGW_32bit .. Думаю, это, вероятно, нет. есть ли какая-либо настройка в qt, где я могу проверить? – Ceria

+2

Qt Creator - это просто IDE, отличный визуальный интерфейс для программирования. Qt Creator использует компилятор за кулисами. Вы должны иметь возможность включить C++ 14, добавив 'CONFIG + = C++ 14' (или что-то вроде этого, я не на 100%, что точная команда) в ваших настройках проекта. – Cornstalks

ответ

0

Для текущего QT, который составляет 5.7. Я использую #include. Следуя ссылке ниже, вы узнаете больше. QScopedPointer link