J'ai plusieurs types de formats qui ont chacun un nom et une valeur qui leur est affectée. Je veux pouvoir passer le type de format en tant que paramètre dans une méthode. La déclaration ressemblera à CreateFile(4,3,2,UGS12_FMT)
, où UGS12_FMT
est de type C++.C++: Utilisation du type de classe en tant que paramètre
Notez que je ne passe pas dans une instance en tant que paramètre. Des suggestions sur la façon d'accomplir cela?
Je ne vois pas comment RTTI s'adapte ici. – jweyrich
* Si * vous ne pouvez pas utiliser les modèles et que vous devez faire quelque chose qui dépend finalement d'un type, vous pouvez utiliser les informations RTTI (généralement dans une carte de type_info pour fonctionner) pour effectuer des actions conditionnellement. Cela évite la nécessité d'écrire une énumération éventuellement longue et pas si facile à maintenir. –
Nous ne savons pas combien de types de fichiers OP considère, mais s'il doit écrire du code pour gérer chacun de ces types, le maintien d'un 'enum' avec un' struct' est la tâche la plus simple.De plus, 'std :: type_info :: name()' n'est pas cohérent entre les compilateurs, donc, si la portabilité est considérée, je vois cela comme la con principale. – jweyrich