Saya sedang mempertimbangkan penggunaan beberapa fitur C ++ 11 (seperti auto
misalnya) di beberapa proyek lintas platform (Windows + Mac). Di Windows, Visual Studio mendukung bagian dari standar C ++ 11 yang akan datang yang memungkinkan saya untuk menyederhanakan bagian dari basis kode sehingga secara alami saya akan tertarik untuk mulai menggunakan fitur ini.
Namun sejauh yang saya ketahui, versi XCode saat ini (3.2.4 + GCC 4.2) sama sekali tidak mendukung fitur C ++ 11. Dapatkah saya meningkatkan versi GCC atau versi CLang? Atau haruskah saya menggigit lidah dan menunggu Apple mengemas versi baru suatu saat nanti?
Jawaban:
Xcode 4.2 akhirnya menambahkan dukungan untuk C ++ 0X:
Di layar setelan build proyek, aktifkan opsi "Semua".
Di bagian "Build Options", setel compiler ke "Apple LLVM compiler 3.0".
Gulir ke bawah ke bagian "Apple LLVM Compiler 3.0 - Language" dan setel "C ++ Language Dialect" ke "C ++ 0X" dan "C ++ Standard Library" ke "libc ++".
Std :: move (), move constructor dan referensi R-Value diketahui berfungsi seperti yang diharapkan, dan saya menguji pada std :: thread dan std :: atomic.
sumber
GNU++0X
opsi untukC++ Language Dialect
danlibstdc++
opsi untukC++ Standard Library
? Kapan mereka akan digunakan?/Developer/About\ Xcode.pdf
dan ya, dikatakan bahwa C ++ 11 didukung, tetapi ketika saya menggunakannya-std=gnu++0x
akan keluarcc1plus: error: unrecognized command line option "-std=0x++"
! Haruskah saya gunakanclang++
sebagai gantinya?clang++
saat mengompilasi, bukang++
, itulah sebabnya dukungan C ++ 11 gagal saat mencoba menggunakang++
dari baris perintah (karenag++
Xcode kuno memberi Anda tidak mendukungnya). FYI saja.======= Pembaruan 2012: =======
Mulailah dengan Clang - Banyak fitur C ++ 11 sekarang tersedia di Clang. Ini disertakan dengan Xcode.
======= Jawaban asli dari Jan 2011: =======
kompiler intel mungkin cara terbersih untuk pergi saat ini. http://software.intel.com/en-us/articles/intel-composer-xe/
clang menjanjikan, tetapi tidak terlalu stabil atau menampilkan fitur wrt c ++ 0x. c ++ masih sangat baru untuk clang.
gcc: relatif matang, tetapi Anda harus menulis dan memelihara plugin kompiler Anda untuk xcode.
Anda juga dapat menentukan skrip khusus, tetapi itu sulit untuk dipelihara ... kecuali Anda keluar semua dan membuat alat adaptor.
sumber
Xcode menggunakan kompiler GCC atau Clang C ++. Semua fitur yang didukung oleh penyusun tersebut adalah permainan yang adil. Halaman kompatibilitas GCC C ++ ada di sini dan halaman kompatibilitas Clang C ++ ada di sini .
sumber
Saya telah menemukan auto, dectype (), range based "for (:)" bekerja dalam proyek lintas platform (LLVM untuk MacOSX, iOS, gcc / linux, MSVC 10 / windows).
lambdas & makro variadic tampaknya tidak berfungsi di bawah LLVM namun sayangnya.
sumber