Melaksanakan Jenis Ahli Kendiri Autonomi dalam C dengan Makro Templat
Dalam C , meniru kefungsian kata kunci sendiri PHP menimbulkan cabaran unik. Walaupun mungkin untuk mencipta pelaksanaan khusus kelas menggunakan alias jenis tersuai, pendekatan ini memerlukan penetapan jenis kelas berulang kali, meninggalkan ruang untuk kemungkinan ralat. Untuk menangani perkara ini, penyelesaian yang lebih menyeluruh diperlukan.
Nasib baik, menggunakan gabungan makro templat dan templat variadik, kita boleh mencapai pelaksanaan autonomi kendiri. Begini caranya:
template <typename X, typename...Ts> class Self : public Ts... { protected: typedef X self; };
#define WITH_SELF(X) X : public Self<X> #define WITH_SELF_DERIVED(X,...) X : public Self<X,__VA_ARGS__>
class WITH_SELF(Foo) { void test() { self foo; } };
class WITH_SELF_DERIVED(Bar, Foo, Foo2) { /* ... */ };
Atas ialah kandungan terperinci Bagaimanakah Makro Templat C Boleh Mensimulasikan Kata Kunci `diri` PHP untuk Rujukan Kendiri Autonomi?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!