Les modèles de classe C ++ peuvent-ils prendre des noms de méthodes sous forme de paramètres de modèle?

StackOverflow https://stackoverflow.com//questions/12701613

  •  12-12-2019
  •  | 
  •  

Question

Tout comme si le titre demande, les modèles de classe C ++ peuvent prendre des noms de méthodes comme paramètres de modèle?

Par exemple,

template <T>
class Foo
{
public:
    void T(int bar);
};

Était-ce utile?

La solution

Malheureusement, la langue de base C ++ n'a aucun moyen de manipuler noms .

Certaines possibilités:

  • Les noms de poignées via le préprocesseur, à savoir., macros laides.
    Remarque: la bibliothèque de paramètres de boost utilise des
    non documenté Boost Macro Dressery très pertinent ici.J'ai utilisé cela pour un Classe d'options générales une fois.Désolé, je ne me souviens pas grand chose à ce sujet, mais cela prend essentiellement une sorte de macros variadiques pour C ++ 03.
  • Faites votre propre prétraitement personnalisé, c'est-à-dire script basé sur le script.
  • Mettez le fardeau du programmateur de code client, en quelque sorte.

Pour ceux qui se demandent, qu'en faut-il avoir besoin de cela ?, une affaire indique que quelque chose comme la bibliothèque de Python "Nommé Tuple" de classe, en C ++, où le programmateur fournit les noms des membres du tuple.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top