Apa cara yang benar untuk menggunakan rentang berbasis C ++ 11 for? Sintaks apa yang harus digunakan? for (auto elem : container), for (auto& elem : container)atau for (const auto& elem : container)? Atau yang
Apa cara yang benar untuk menggunakan rentang berbasis C ++ 11 for? Sintaks apa yang harus digunakan? for (auto elem : container), for (auto& elem : container)atau for (const auto& elem : container)? Atau yang
Eclipse 3.7.1 CDT 1.4.1 GCC 4.6.2 Ini adalah contoh dari sepotong kode C ++ 11: auto text = std::unique_ptr<char[]>(new char[len]); Editor Eclipse mengeluh tentang: Function 'unique_ptr' could not be resolved Kompilasi Makefile berfungsi dengan baik. Bagaimana cara membuat Eclipse...
Apakah mungkin untuk melewatkan fungsi lambda sebagai penunjuk fungsi? Jika demikian, saya pasti melakukan sesuatu yang salah karena saya mendapatkan kesalahan kompilasi. Perhatikan contoh berikut using DecisionFn = bool(*)(); class Decide { public: Decide(DecisionFn dec) : _dec{dec}...
Kadang-kadang diklaim bahwa C ++ 11/14 dapat membuat Anda meningkatkan kinerja bahkan ketika hanya mengkompilasi kode C ++ 98. Pembenaran biasanya sepanjang garis semantik bergerak, karena dalam beberapa kasus pembangun nilai secara otomatis dihasilkan atau sekarang bagian dari STL. Sekarang saya...
Setiap kontainer standar memiliki begindan endmetode untuk mengembalikan iterator untuk wadah itu. Namun, C ++ 11 tampaknya telah memperkenalkan fungsi bebas yang dipanggil std::begindan std::endyang memanggil fungsi begindan endanggota. Jadi, alih-alih menulis auto i = v.begin(); auto e =...
Haruskah ini menjadi contoh: #include <iostream> using namespace std; int main() { cout << "Hola, moondo.\n"; } Itu melempar kesalahan: gcc -c main.cpp gcc -o edit main.o main.o: In function `main': main.cpp:(.text+0xa): undefined reference to `std::cout' main.cpp:(.text+0xf):...
Jika saya memiliki variabel di dalam suatu fungsi (katakanlah, array besar), apakah masuk akal untuk menyatakan keduanya staticdan constexpr? constexprmenjamin bahwa array dibuat pada waktu kompilasi, jadi apakah statictidak akan berguna? void f() { static constexpr int x [] = { // a few...
Mengapa fungsi terbalik untuk std::listkelas di pustaka standar C ++ memiliki runtime linier? Saya akan berpikir bahwa untuk daftar yang ditautkan dua kali lipat fungsi terbalik seharusnya O (1). Membalik daftar yang tertaut ganda harus melibatkan penggantian kepala dan ujung
Dengan standar baru, ada cara-cara baru dalam melakukan sesuatu, dan banyak yang lebih baik daripada cara-cara lama, tetapi cara lama masih baik-baik saja. Juga jelas bahwa standar baru tidak secara resmi mencela, karena alasan kompatibilitas. Jadi pertanyaan yang tersisa adalah: Apa cara...
Saya meletakkan keterampilan C ++ saya di rak beberapa tahun yang lalu dan sepertinya sekarang, ketika saya membutuhkannya lagi, lanskap telah berubah. Kami telah mendapatkan C ++ 11 sekarang, dan pemahaman saya adalah bahwa ini tumpang tindih dengan banyak fitur Boost. Apakah ada beberapa...
[dcl.attr.noreturn] memberikan contoh berikut: [[ noreturn ]] void f() { throw "error"; // OK } tapi saya tidak mengerti apa gunanya [[noreturn]], karena tipe kembalinya fungsi sudah void. Jadi, apa gunanya noreturnatribut itu? Bagaimana seharusnya
Saya bertanya-tanya mengapa cbegindan cenddiperkenalkan di C ++ 11? Apa kasus ketika memanggil metode-metode ini membuat perbedaan dari overloads konstanta begindan
Saya memiliki kode ini yang tidak berfungsi, tetapi saya pikir maksudnya jelas: testmakeshared.cpp #include <memory> class A { public: static ::std::shared_ptr<A> create() { return ::std::make_shared<A>(); } protected: A() {} A(const A &) = delete; const A...
Saya ingin memiliki static const chararray di kelas saya. GCC mengeluh dan mengatakan kepada saya bahwa saya harus menggunakan constexpr, meskipun sekarang memberitahu saya itu referensi yang tidak ditentukan. Jika saya membuat array menjadi non-anggota maka kompilasi. Apa yang sedang terjadi? //...
Apa alasan keberadaannya std::decay? Dalam situasi apa
Dengan standar baru datang (dan bagian sudah tersedia di beberapa kompiler), tipe baru std::unique_ptrseharusnya menjadi pengganti std::auto_ptr. Apakah penggunaannya benar-benar tumpang tindih (sehingga saya dapat melakukan global menemukan / mengganti kode saya (bukan bahwa saya akan melakukan...
Saya telah membaca dan mendengar bahwa C ++ 11 mendukung Unicode. Beberapa pertanyaan tentang itu: Seberapa baik pustaka standar C ++ mendukung Unicode? Apakah std::string melakukan apa yang seharusnya? Bagaimana saya menggunakannya? Di mana ada potensi masalah?
Jawaban @R ini. Martinho Fernandes menunjukkan, bahwa idiom safe-bool sudah tidak digunakan lagi dalam C ++ 11, karena dapat diganti dengan sederhana explicit operator bool() const; sesuai dengan kutipan standar dalam jawabannya §4 [conv] p3: Ekspresi e dapat secara implisit dikonversi menjadi...
Bagaimana cara saya menghapus dari peta saat iterasi? Suka: std::map<K, V> map; for(auto i : map) if(needs_removing(i)) // remove it from the map Jika saya menggunakannya map.eraseakan membatalkan
Menggunakan C ++ 11, Ubuntu 14.04, GCC toolchain default . Kode ini gagal: constexpr std::string constString = "constString"; error: tipe 'const string {alias const std :: basic_string}' dari variabel constexpr 'constString' tidak literal ... karena ... 'std :: basic_string' memiliki...