Pertanyaan yang diberi tag «c++11»

Gunakan tag ini untuk kode yang harus dikompilasi sebagai C ++ 11 (tidak menggunakan fitur apa pun yang diperkenalkan di C ++ 14 atau yang lebih baru).

5
menggunakan template extern (C ++ 11)
Gambar 1: template fungsi TemplHeader.h template<typename T> void f(); TemplCpp.cpp template<typename T> void f(){ //... } //explicit instantation template void f<T>(); Main.cpp #include "TemplHeader.h" extern template void f<T>(); //is this correct? int main() { f<char>(); return 0; } Apakah ini cara yang benar untuk digunakan extern template, atau apakah saya …
116 c++  templates  c++11  extern 


4
Menghindari pernyataan if di dalam perulangan for?
Saya memiliki kelas yang disebut Writeryang memiliki fungsi writeVectorseperti: void Drawer::writeVector(vector<T> vec, bool index=true) { for (unsigned int i = 0; i < vec.size(); i++) { if (index) { cout << i << "\t"; } cout << vec[i] << "\n"; } } Saya mencoba untuk tidak memiliki kode duplikat, sambil …


3
Apa keuntungan menggunakan referensi penerusan dalam loop berbasis rentang?
const auto&sudah cukup jika saya ingin melakukan operasi hanya-baca. Namun, saya telah bertemu for (auto&& e : v) // v is non-const beberapa kali baru-baru ini. Ini membuat saya bertanya-tanya: Mungkinkah dalam beberapa kasus sudut yang tidak jelas ada beberapa manfaat kinerja dalam menggunakan referensi penerusan, dibandingkan dengan auto&atau const …

1
Bagaimana seseorang memanggil std :: forward pada semua argumen dalam fungsi variadic?
Saya baru saja menulis pabrik objek generik dan menggunakan pustaka meta preprocessor boost untuk membuat template variadic (menggunakan 2010 dan tidak mendukungnya). Fungsi saya menggunakan referensi rval dan std::forwardmelakukan penerusan sempurna dan itu membuat saya berpikir ... ketika C ++ 0X keluar dan saya memiliki kompiler standar, saya akan melakukan …




6
Mengapa kita bisa menggunakan `std :: move` pada objek` const`?
Di C ++ 11, kita bisa menulis kode ini: struct Cat { Cat(){} }; const Cat cat; std::move(cat); //this is valid in C++11 ketika saya panggil std::move, artinya saya ingin memindahkan objek, yaitu saya akan mengubah objek. Untuk memindahkan constobjek tidak masuk akal, jadi mengapa std::movetidak membatasi perilaku ini? Itu …
113 c++  c++11 

4
Apakah cout disinkronkan / aman untuk utas?
Secara umum saya berasumsi bahwa aliran tidak disinkronkan, terserah pengguna untuk melakukan penguncian yang sesuai. Namun, apakah hal-hal seperti coutmendapat perlakuan khusus di perpustakaan standar? Artinya, jika beberapa utas menulis, coutdapatkah mereka merusak coutobjek? Saya memahami bahwa meskipun disinkronkan, Anda masih akan mendapatkan keluaran interleaved acak, tetapi apakah interleaving itu …
112 c++  gcc  c++11 

20
Bagaimana Anda bisa mengulang elemen dari std :: tuple?
Bagaimana saya bisa melakukan iterasi melalui tupel (menggunakan C ++ 11)? Saya mencoba yang berikut ini: for(int i=0; i<std::tuple_size<T...>::value; ++i) std::get<i>(my_tuple).do_sth(); tapi ini tidak berhasil: Kesalahan 1: maaf, tidak diterapkan: tidak dapat memperluas 'Pendengar ...' menjadi daftar argumen dengan panjang tetap. Kesalahan 2: Saya tidak dapat muncul dalam ekspresi konstan. …

8
Bagaimana cara menyemai mt19937 PRNG secara ringkas, portabel, dan menyeluruh?
Sepertinya saya melihat banyak jawaban di mana seseorang menyarankan penggunaan <random>untuk menghasilkan angka acak, biasanya bersama dengan kode seperti ini: std::random_device rd; std::mt19937 gen(rd()); std::uniform_int_distribution<> dis(0, 5); dis(gen); Biasanya ini menggantikan beberapa jenis "kekejian yang tidak suci" seperti: srand(time(NULL)); rand()%6; Kita mungkin mengkritik cara lama dengan alasan yang time(NULL)memberikan entropi …
112 c++  c++11  random 

4
Bisakah kelas enum diubah menjadi tipe yang mendasari?
Apakah ada cara untuk mengonversi enum classbidang menjadi tipe yang mendasari? Saya pikir ini akan otomatis, tetapi ternyata tidak. enum class my_fields : unsigned { field = 1 }; unsigned a = my_fields::field; Tugas itu ditolak oleh GCC. error: cannot convert 'my_fields' to 'unsigned int' in assignment.
112 c++  c++11 

13
Bagaimana cara menghindari loop "for" dengan kondisi "if" di dalamnya dengan C ++?
Dengan hampir semua kode yang saya tulis, saya sering berurusan dengan masalah pengurangan set pada koleksi yang pada akhirnya berakhir dengan kondisi "jika" yang naif di dalamnya. Berikut contoh sederhananya: for(int i=0; i<myCollection.size(); i++) { if (myCollection[i] == SOMETHING) { DoStuff(); } } Dengan bahasa fungsional, saya dapat memecahkan masalah …
111 c++  c++11  c++14 

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.