Noexcept dalam Penggunaan Sehari-hari: Bila dan Mengapa
Kata kunci noexcept menawarkan pengoptimuman yang menjanjikan untuk fungsi C yang boleh menjamin mereka tidak akan membuang pengecualian . Semasa mengenali faedahnya, anda mungkin mempunyai soalan tentang aplikasi praktikalnya. Berikut ialah beberapa penjelasan.
1. Bila Perlu Menambah Noexcept
Anda tidak perlu menganotasi setiap fungsi dengan noexcept. Gunakannya apabila jelas bahawa fungsi itu tidak akan membuang. Jika anda tidak pasti, pertimbangkan senario berikut:
2. Faedah Prestasi
Noexcept memberi kesan terutamanya kepada prestasi melalui membenarkan pengoptimuman pengkompil tertentu. Walaupun penyusun moden mungkin belum memanfaatkan sepenuhnya noexcept, ia mempunyai beberapa faedah:
Contoh Khusus
Berikut ialah contoh yang menambahkan noexcept boleh meningkatkan prestasi:
class MyClass { public: MyClass() noexcept = default; MyClass(const MyClass& other) noexcept = default; }; int main() { std::vector<MyClass> v; for (int i = 0; i < 100000; i++) { v.push_back(MyClass()); } }
Dengan menandakan pembina salinan noexcept, pengkompil boleh menggunakan operasi pergerakan yang lebih cekap untuk pembinaan objek, menghasilkan pelaksanaan yang lebih pantas.
Atas ialah kandungan terperinci C `noexcept`: Bilakah Anda Harus Menggunakannya dan Apakah Keuntungan Prestasi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!