53 votes

Condition de type dans le modèle

Est-il possible de ne construire qu’une partie du code compte tenu du type du modèle en C++ ? Ce serait quelque chose de lac qui :

25voto

Wormer Points 485

Depuis C++17, il existe un moyen de faire exactement cela avec if-constexpr. Les compilations suivantes depuis clang-3.9.1, gcc-7.1.0 et le compilateur MSVC récent 19.11.25506 gèrent bien aussi avec une option /std:c++17.

Sortie:

11voto

Alexander Gessler Points 26717

Utilisez la spécialisation des modèles :

6voto

Puppy Points 90818

Vous pouvez utiliser une spécialisation. Le préprocesseur s’exécute avant tous les modèles et ne peut pas interagir avec eux.

4voto

Jesse Emond Points 2047

Vous utilisez la spécification de modèle pour spécifier les versions de votre fonction pour fonctionner différemment en fonction de son type. Par exemple, vous pouvez créer une version générique d’une fonction qui fonctionnerait avec la plupart des types, et créer une version spécifique pour, par exemple, `` qui sera plus rapide. Vous le feriez de cette façon:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X