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);
};
.

È stato utile?

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
scroll top