Qualcuno può, per favore, abbatterlo per me? Conosco le macro e conosco abbastanza bene i modelli, ma non ho idea di ciò che l'autore sta esprimendo con questo. Qual è l'uso previsto, perché è scritto in questo modo? Cosa stiamo definendo per essere cosa qui? Come e perché si usa questo?Cosa significa questa macro modello C++?
#define MY_CLASS(RET_TYPE, ...)\
template<typename Derived>\
__VA_ARGS__\
RET_TYPE my_class_impl<Derived>
E ho anche qualcosa come
MY_CLASS()::my_class_impl(int arg_id)
E vedo anche
template<typename Derived>
class my_class_impl
ho sentito da un collega che questo è un caso di CRTP (curiosamente motivo template ricorrenti), ma non ha avuto approfondimenti specifici.
Inoltre, lo vedo utilizzato in seguito come segue:
MY_CLASS(some_type)::find_desired_val(int x) {
// some code
}
Così, la macro viene utilizzata per firme metodo sostitutivo per la classe my_class_impl
quando in realtà loro attuazione?
Che cos'è 'my_class_impl'? – Caninonos
Si prega di consultare la modifica. –
Il 'typename Derived' lo fa apparire come un CRTP purè all'interno di una macro. Quali argomenti ragionevoli potrebbero essere forniti per 'RET_TYPE' e' ... ', e perché la macro è chiamata senza, non lo so. – Quentin