2015-05-04 14 views
7

Ho un semplice progetto Qt. I include <memory> ma std :: unique_ptr non è disponibile. So che dovrei usare puntatori intelligenti specifici per Qt, ma ho bisogno di includere un progetto più grande che contenga std :: unique_ptr.unique_ptr nel progetto Qt

Cosa posso fare?

Grazie!

+1

Qt ha i propri puntatori intelligenti e condivisi se non si dispone di un C++ 11 compilatore. – drescherjm

+0

Che compilatore stai usando? Stai usando C++ 11/14? – NathanOliver

+0

Come posso vederlo da Qt Creator? – yonutix

risposta

7

C++ 11 è richiesto per i puntatori intelligenti. A seconda della versione di Qt:

Aggiungi CONFIG += c++11 al file .pro se disponi di Qt5 e versioni successive. Deve includere <memory> come menzionato da Simon.

Se si dispone di una versione precedente di QT5, prova ad aggiungere questo:
QMAKE_CXXFLAGS += -std=c++11

+1

Ha funzionato con QMAKE_CXXFLAGS + = -std = C++ 11 – yonutix

3

comprendere memoria:

#include <memory> 

Configurare il progetto di Qt per usare C++ 11. Aggiungi al tuo file .pro:

CONFIG += c++11 

Se ciò non risolve il problema, aggiungi un messaggio di errore dettagliato.

+0

errore: 'unique_ptr' non è un membro di 'std' – yonutix

+1

Il mio file .pro ha il seguente aspetto: http://pastebin.com/wMKpDHAX ma sembra non funzionare (memoria inclusa) – yonutix

+0

Come faccio a è stato aperto un progetto cmake? – raaj