Bagikan melalui


Peringatan C26455

Konstruktor default tidak boleh dilemparkan. Nyatakan 'noexcept' (f.6)

Panduan Inti C++ menyarankan bahwa konstruktor default tidak boleh melakukan apa pun yang dapat dilemparkan. Ketika konstruktor default dapat melemparkan, semua kode yang bergantung pada objek yang dibuat dengan benar juga dapat dilemparkan.

Keterangan

Pertimbangkan konstruktor default dari jenis STL, seperti std::vector. Dalam implementasi ini, konstruktor default menginisialisasi status internal tanpa membuat alokasi. std::vector Dalam hal ini, ukuran diatur ke 0 dan pointer internal diatur ke nullptr. Pola yang sama harus diikuti untuk semua konstruktor default.

Nama analisis kode: DEFAULT_CTOR_NOEXCEPT

Lihat juga

C26439
F.6: Jika fungsi Anda tidak boleh melemparkan, nyatakan noexcept