Rumah > Artikel > pembangunan bahagian belakang > Berikut ialah beberapa pilihan tajuk, memfokuskan pada persoalan kebolehlaksanaan dan potensi faedah: Pilihan 1 (Terus dan Ringkas): * Bolehkah C 11 Melaksanakan Lebihan Beban Berdasarkan Argumen Constexpr? Pilihan 2
Melebihi Fungsi dengan Argumen Constexpr dalam C 11
Dalam C 11, ketidakupayaan untuk melebihkan fungsi berdasarkan argumen constexpr menimbulkan pengehadan. Ketidakupayaan untuk mentakrifkan fungsi dengan tandatangan yang sama tetapi status constexpr berbeza mengehadkan potensi constexpr. Sebagai contoh, seseorang mungkin menginginkan pembina rentetan constexpr std::string untuk argumen constexpr dan bukan constexpr untuk argumen bukan constexpr.
Ketiadaan keupayaan lebihan beban tersebut menimbulkan persoalan: adakah ia boleh dilaksanakan untuk C 11 pelaksanaan untuk menyokong lebihan muatan berdasarkan argumen constexpr atau adakah ia mewajibkan kemas kini standard?
Pelaksanaan C 11 semasa tidak membenarkan lebihan muatan berdasarkan argumen constexpr. Sekatan ini sengaja dilaksanakan.
Alternatif dan Pertimbangan
Walaupun kekurangan constexpr overloading, alternatif wujud. Satu pilihan melibatkan penggunaan templat. Sebagai contoh, untuk mencapai kefungsian constexpr std::string constructor, seseorang boleh mencipta templat:
template<int n> static inline double pow(double x) { // Fast implementation of x ^ n, with n a compile time constant return ... }
Walau bagaimanapun, pendekatan ini memerlukan pengguna untuk menggunakan panggilan fungsi yang berbeza bergantung pada sama ada n ialah kompil- pemalar masa, yang boleh menyusahkan dan tidak dapat diramalkan untuk fungsi perpustakaan.
Faedah Berpotensi
Mendayakan lebihan fungsi berdasarkan argumen constexpr akan memberikan beberapa kelebihan:
Atas ialah kandungan terperinci Berikut ialah beberapa pilihan tajuk, memfokuskan pada persoalan kebolehlaksanaan dan potensi faedah: Pilihan 1 (Terus dan Ringkas): * Bolehkah C 11 Melaksanakan Lebihan Beban Berdasarkan Argumen Constexpr? Pilihan 2. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!