2011-11-28 18 views
19

Anche se ci sono alcune domande qui riguardo al supporto C++ 11 di clang, non riesco a ottenere clang++ per mangiare il mio codice C++ 11.clang ++ C++ 11 invocazione

$ clang++ --version 
clang version 2.9 (tags/RELEASE_29/final) 
Target: x86_64-pc-linux-gnu 
Thread model: posix 

Secondo the clang C++11 status page avrei supporto almeno parziale (ad esempio staffe ad angolo retto), ma rifiuta tutte le caratteristiche che ho provato.

C'è qualche opzione per dire a clang di usare C++ 11?


prova Esempio:

$ clang++ -stdlib=libstdc++ cpp11.cpp 
cpp11.cpp:16:33: error: a space is required between consecutive right angle brackets (use '> >') 
    std::vector<std::pair<int,char>> xs; 
           ^~ 
           > > 
cpp11.cpp:18:8: error: C++ requires a type specifier for all declarations 
    auto y = x; 
    ~~~~^
2 errors generated 
+4

Hai provato '-std = C++ 0x'? – ildjarn

+0

@ildjarn: Sì, ma soffoca orribilmente su quell'argomento (circa due pagine di messaggi di errore e un Segfault finale). – bitmask

+0

Si tratta della versione Apple o della versione base? Chiedendo perché ho segnalato un bug di Apple al sito principale e sono stato fiammeggiato :) –

risposta

19

Ildjarn sottolinea l'argomento corretto, -std=c++0x o -std=c++11. Gli errori che si ottengono con questo argomento potrebbero essere dovuti al fatto che la versione di libstdC++ che si sta utilizzando utilizza un C++ 11 o C++ non standard, che clang 2.9 non supporta.

+4

Provare qualcosa sulla falsariga di 'clang ++ -std = C++ 0x -stdlib = libC++ ...' (supponendo, ovviamente, che sia installato libC++). – Hugh

+0

@Huw: Sì, mi sono appena reso conto che ho l'opzione tra 'libC++' e 'libstdC++' e finora ero troppo pigro per compilare 'clang' o' llvm' da solo, quindi l'ho preso dalle mie fonti di pacchetti, che fanno non includere 'libC++' e se credo che la documentazione del progetto quella libreria sia disponibile solo per Mac. Il che significa che non è disponibile per me, giusto? – bitmask

+0

@bitmask: Sì, non sembra che sia disponibile per sistemi non OS X, purtroppo. – Hugh

Problemi correlati