Birisi lütfen bunu benim için yıkabilir misiniz? Makroları biliyorum ve şablonlarla oldukça tanıdık ama yazarın bununla ne ifade ettiğini bilmiyorum. Amaçlanan kullanım nedir, neden böyle yazılmıştır? Burada ne olmak istiyoruz? Bunu neden ve nasıl kullanır?Bu C++ şablon makrosu ne anlama geliyor?
#define MY_CLASS(RET_TYPE, ...)\
template<typename Derived>\
__VA_ARGS__\
RET_TYPE my_class_impl<Derived>
Ve ayrıca bu cRTP vakası (merakla yinelenen şablon desen) olduğu bir meslektaşım duyduğumuz
template<typename Derived>
class my_class_impl
MY_CLASS()::my_class_impl(int arg_id)
Ve gibi bir şey olduğunu da görebiliyordum var ama daha spesifik bir anlayışı yoktu. Yani
MY_CLASS(some_type)::find_desired_val(int x) {
// some code
}
, makro sınıfının gerçekten tamamlamadan my_class_impl
için yedek bir yöntem imzalar için kullanılır:
Ayrıca, aşağıdaki gibi sonradan kullanılan bakınız?
'my_class_impl' nedir? – Caninonos
Lütfen düzenlemeye bakın. –
Türetme Türetilmiş bir makro içinde püskürtülen bir CRTP gibi görünmesini sağlar. RET_TYPE' ve '...' için ne mantıklı argümanlar sağlanabilir ve neden makro yok deniliyor, bilmiyorum. – Quentin