Mengapa Tiada std::is_struct Type Trait?
Dalam C , adalah perkara biasa untuk menggunakan std::is_class untuk menentukan sama ada a jenis ialah kelas. Walau bagaimanapun, anda mungkin tertanya-tanya mengapa tiada std::is_struct untuk membezakan antara struct dan kelas.
Salah Tanggapan:
Selalunya diandaikan bahawa struct dan kelas adalah entiti yang berbeza dalam C . Walau bagaimanapun, ini adalah tanggapan yang salah.
Kebenaran:
Bermula pada tahun 1985, C memperkenalkan model kelas bersatu, menghapuskan perbezaan antara struct dan kelas. Kata kunci struct hanyalah gula sintaksis yang mentakrifkan kelas dengan keterlihatan ahli lalai.
Mengapa Tiada Ciri Jenis:
Memandangkan struct dan kelas pada asasnya adalah jenis yang sama dalam C , tidak ada keperluan untuk sifat jenis std::is_struct yang berasingan. std::is_class dengan betul mengenal pasti kedua-dua struct dan kelas sebagai kelas.
Kesimpulan:
Ketiadaan std::is_struct mencerminkan fakta bahawa C menganggap struct dan kelas sebagai satu dan sama. Ciri jenis std::is_class menangkap idea jenis kelas dengan secukupnya tanpa memerlukan semakan berasingan untuk struct.
Atas ialah kandungan terperinci Mengapa Tiada Ciri Jenis `std::is_struct` dalam C ?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!