Saya bertanya-tanya mengapa cbegindan cenddiperkenalkan di C ++ 11? Apa kasus ketika memanggil metode-metode ini membuat perbedaan dari overloads konstanta begindan
Saya bertanya-tanya mengapa cbegindan cenddiperkenalkan di C ++ 11? Apa kasus ketika memanggil metode-metode ini membuat perbedaan dari overloads konstanta begindan
Jadi mengapa tepatnya selalu disarankan untuk menggunakan const sesering mungkin? Sepertinya saya bahwa menggunakan const bisa lebih menyakitkan daripada bantuan dalam C ++. Tapi sekali lagi, saya datang pada ini dari perspektif python: jika Anda tidak ingin sesuatu diubah, jangan mengubahnya. Maka...
Saya telah membaca berkali-kali bahwa menegakkan const-correctness dalam kode C atau C ++ Anda tidak hanya praktik yang baik terkait dengan rawatan, tetapi juga memungkinkan compiler Anda untuk melakukan pengoptimalan. Namun, saya telah membaca kebalikannya - bahwa itu tidak mempengaruhi kinerja...
Katakanlah saya memiliki kode dalam C dengan kira-kira struktur ini: switch (something) { case 0: return "blah"; break; case 1: case 4: return "foo"; break; case 2: case 3: return "bar"; break; default: return "foobar"; break; } Sekarang jelas, breaks tidak diperlukan agar...
Misalkan saya memiliki tipe callable seperti: struct mutable_callable { int my_mutable = 0; int operator()() { // Not const return my_mutable++; } }; Catatan yang mutable_callablememiliki non-const operator()yang memodifikasi variabel anggota ..... Sekarang anggaplah saya membuat...
Saya punya pembungkus untuk beberapa kode warisan. class A{ L* impl_; // the legacy object has to be in the heap, could be also unique_ptr A(A const&) = delete; L* duplicate(){L* ret; legacy_duplicate(impl_, &L); return ret;} ... // proper resource management here }; Dalam kode lawas...