Sto provando a compilare un'applicazione Android in Android Studio (ndk r10d) che utilizza un codice C++. Avevo bisogno del C++ 11, quindi ho aggiunto -std=gnu++11
(ho bisogno di gnu++11
invece di c++11
per un'estensione che sto usando). Sto usando lo stlport stl, a causa di altre librerie che sto usando che usano questa libreria stl. Così i miei CFLAGS e parametri STL nel file build.gradle assomiglia a questo:Errore di ricezione: 'shared_ptr' nello spazio dei nomi 'std' non nomina un tipo
stl "stlport_static"
cFlags " mylib1.a mylib2.a ... -fexceptions -frtti -std=gnu++11"
ho memoria anche hanno incluso: #include <memory>
Quando si cerca di compilare ricevo questo errore:
'shared_ptr' in namespace 'std' does not name a type
Fino ad ora ho utilizzato l'implementazione boost per i puntatori intelligenti ma con il passaggio a C++ 11 preferisco utilizzare l'implementazione standard.
Qual è il codice effettivo che causa l'errore? –
L'errore originale è su questa definizione che ho aggiunto per rendere il codice più breve ma gli errori sono visti in tutti i file ovunque io tenti di usare questa macro: #define myapp_shared_ptr std :: shared_ptr – royeet
shared_ptr non nomina un tipo. Denomina un modello di tipo. Sei sicuro di fare shared_ptr quando lo usi? L'errore che ottengo quando esco è "l'uso del modello di classe richiede argomenti del modello" –
Charlie