Melebihi Fungsi Berdasarkan Argumen Constexpr
Melebihi beban fungsi berdasarkan konstexprness argumen adalah batasan yang dihadapi oleh pengaturcara dalam C 11. Ini bermakna bahawa tidak mungkin untuk mentakrifkan dua fungsi dengan tandatangan yang sama, tetapi satu adalah constexpr dan satu lagi bukan constexpr.
Pelaksanaan C 11 yang mematuhi piawai tidak membenarkan beban berlebihan sedemikian dan pengehadan ini sengaja dikuatkuasakan. Walau bagaimanapun, isu itu telah diiktiraf dan ditangani dalam versi standard C yang terkemudian.
Dalam C 17, konsep "constexpr lambdas" telah diperkenalkan, menyediakan penyelesaian untuk isu ini. Constexpr lambdas membenarkan penciptaan fungsi tanpa nama yang boleh dilaksanakan pada masa penyusunan dan boleh menerima argumen constexpr.
Selain itu, bermula dengan C 20, satu set peraturan peleraian beban lampau baharu yang dikenali sebagai "pencarian dua fasa" telah dilaksanakan. Peraturan ini mengutamakan fungsi constexpr apabila memanggil fungsi dengan argumen constexpr, mensimulasikan lebihan fungsi secara berkesan berdasarkan constexprness.
Dengan memanfaatkan constexpr lambdas atau mematuhi peraturan resolusi beban lampau baharu dalam C 20 dan kemudian, pengaturcara boleh mencapai fungsi mereka inginkan.
Contoh:
Atas ialah kandungan terperinci Bagaimanakah Fungsi Alamat C Lebih Muatan Berdasarkan Argumen Constexpr?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!