Rumah >pembangunan bahagian belakang >C++ >Bilakah Peletakan-Baharu Mesti Digunakan dengan `reinterpret_cast` untuk Mencipta Objek Boleh Bina Lalai Yang Trivial?
Reinterpret_cast dan Penciptaan Objek Boleh Bina Risalah Yang Trivially
cppreference digunakan untuk mendakwa bahawa reinterpret_cast boleh digunakan untuk mencipta objek boleh bina lalai yang remeh pada storan sejajar yang sesuai. Walau bagaimanapun, tuntutan ini telah diperbetulkan untuk menyatakan bahawa penempatan-baharu diperlukan dalam kes sedemikian untuk memperkenalkan objek secara rasmi dan mengelakkan tingkah laku yang tidak ditentukan.
Bila Masa Hayat Objek Bermula?
Memandangkan pembetulan ini, adalah jelas bahawa tiada objek X wujud dalam kod yang disediakan. Oleh itu, sebarang percubaan untuk mengakses ahlinya (cth., reinterpret_cast
Peranan alignas()
Penentukan alignas() memastikan storan dijajarkan sesuai untuk disimpan X. Ia tidak mencipta objek X. Jika terdapat cawangan antara perisytiharan alignas() dan reinterpret_cast, ia tidak akan mengubah fakta bahawa tiada objek X wujud.
Perubahan dalam Piawaian C
Tafsiran tingkah laku ini kekal tekal antara C 11 dan C 1z. Konsep mencipta objek tanpa pembinaan eksplisit melalui reinterpret_cast tidak disokong dalam mana-mana standard.
Atas ialah kandungan terperinci Bilakah Peletakan-Baharu Mesti Digunakan dengan `reinterpret_cast` untuk Mencipta Objek Boleh Bina Lalai Yang Trivial?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!