Rumah >pembangunan bahagian belakang >C++ >Adakah Layanan Lanjutan GCC terhadap Fungsi Perpustakaan Standard Non-constexpr dalam Konteks Constexpr Menepati Piawaian C?

Adakah Layanan Lanjutan GCC terhadap Fungsi Perpustakaan Standard Non-constexpr dalam Konteks Constexpr Menepati Piawaian C?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-28 21:33:14835semak imbas

Is GCC's Extensional Treatment of Non-constexpr Standard Library Functions in Constexpr Contexts Conforming to the C   Standard?

Adakah Rawatan Lanjutan terhadap Fungsi Perpustakaan Bukan Konstexpr Mematuhi?

Keupayaan GCC untuk merawat fungsi perpustakaan bukan konstexpr standard sebagai constexpr dalam situasi tertentu menimbulkan persoalan berkenaan pematuhan.

Percanggahan dalam Piawaian

Dalam draf piawai C 11, nampaknya menganggap fungsi terbina dalam sebagai constexpr akan dibenarkan secara jelas. Walau bagaimanapun, konsensus beralih dalam C 12, dan cadangan itu berubah, menyebabkan C 14 secara jelas melarang kelakuan ini.

As-If Rule

Dalam C 11, ia tidak jelas sama ada peraturan seolah-olah membenarkan tingkah laku ini. Sesetengah pendapat mencadangkan bahawa ia mungkin, tetapi tafsiran ini tidak disahkan dalam penyelesaian isu LWG 2013, yang memperkatakan topik khusus ini.

Pelaksanaan GCC

GCC dilaksanakan tingkah laku ini berdasarkan cadangan resolusi awal LWG 2013, yang membenarkan rawatan tersirat sebagai fungsi constexpr. Walau bagaimanapun, resolusi akhir telah berubah dan sambungan ini kini tidak mematuhi C 14.

Pematuhan dalam Mod Tegas

Untuk mematuhi piawaian C 14, GCC harus mengeluarkan amaran dalam mod pematuhan ketat (-std=c 11 -pedantic atau -std=c 14 -pedantic) apabila menghadapi fungsi perpustakaan bukan constexpr yang digunakan dalam konteks constexpr. Sebagai alternatif, tingkah laku ini harus dilumpuhkan dalam mod ini.

Pengecualian Intrinsik

Intrinsik pengkompil tidak dilindungi oleh standard, dan oleh itu, ia mungkin dilayan secara berbeza. Berkemungkinan menggunakan intrinsik pengkompil dalam konteks constexpr masih boleh diterima.

Atas ialah kandungan terperinci Adakah Layanan Lanjutan GCC terhadap Fungsi Perpustakaan Standard Non-constexpr dalam Konteks Constexpr Menepati Piawaian C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn