I modelli di classe C ++ possono prendere i nomi dei metodi come parametri del modello?
-
12-12-2019 - |
Domanda
Proprio come il titolo chiede, i modelli di classe C ++ possono prendere i nomi dei metodi come parametri del modello?
Ad esempio,
template <T>
class Foo
{
public:
void T(int bar);
};
. Soluzione
Sfortunatamente, la lingua principale C ++ non ha alcun mezzo di gestione nomi .
Alcune possibilità:
- .
- Maniglia i nomi tramite il preprocessore, cioè., Macro brutte.
Nota: la libreria di parametri BOOST utilizza alcuni non documentati Aumentare l'inganno macro che è molto pertinente qui.L'ho usato per un Opzioni generali Classe cosa una volta.Scusa, non riesco a ricordarlo molto, ma sostanzialmente supporta una specie di macro Variadici per C ++ 03. - Fai la tua pre-elaborazione personalizzata, I.e. Script basato.
- Metti il carico sul programmatore del codice cliente, in qualche modo.
Per coloro che si chiedono, cosa necessita di questo?, un caso in punto è come qualcosa come una biblioteca di Python "denominata Tuple" classe, in C ++, dove il programmatore fornisce i nomi dei membri della tupla.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow