Membuka Kunci Potensi Auto Templat: Kelebihan dalam C 17
Pengenalan templat
Pelanjutan Asli Auto untuk Instantiasi Templat
auto telah diterima pakai secara meluas untuk pengisytiharan berubah-ubah, memberikan potongan jenis berdasarkan nilai yang ditetapkan. Pelanjutan parameter auto kepada templat memudahkan lagi instantiasi templat dengan menentukan jenis parameter daripada nilainya secara automatik. Ini menghapuskan keperluan untuk spesifikasi jenis eksplisit, menawarkan sintaks yang lebih ringkas dan intuitif.
Potongan Jenis Mudah dan Eksplisit
Penggunaan auto dalam parameter templat membolehkan potongan jenis walaupun untuk parameter templat bukan jenis. Sebagai contoh, sebelum ini, templat pemalar berikut memerlukan pengisytiharan jenis kata kerja:
template <typename Type, Type value> constexpr Type constant = value;
Dengan templat
template <auto value> constexpr auto constant = value;
Pengkompil kini membuat kesimpulan secara automatik jenis daripada nilai yang diberikan kepada nilai, menjadikan kod lebih mudah dibaca dan kurang mudah ralat.
Pengendalian Templat Variadik Dipertingkat
templat
template <auto ... vs> struct HeterogenousValueList {}; using MyList1 = HeterogenousValueList<42, 'X', 13u>;
Begitu juga, senarai nilai homogen boleh ditulis secara ringkas:
template <auto v0, decltype(v0) ... vs> struct HomogenousValueList {}; using MyList2 = HomogenousValueList<1, 2, 3>;
Kesimpulan
templat
Atas ialah kandungan terperinci Bagaimanakah `template ` C 17 Meningkatkan Penggunaan Parameter Templat?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!