Bonjour,
j'aimerais savoir s'il est possible d'ordonner un couple d'entiers à la compilation.
J'imagine que cela doit être faisable avec une classe de trait mais je ne vois pas comment faire.
Merci beaucoup!
Bonjour,
j'aimerais savoir s'il est possible d'ordonner un couple d'entiers à la compilation.
J'imagine que cela doit être faisable avec une classe de trait mais je ne vois pas comment faire.
Merci beaucoup!
Hello
Si c'est juste un couple d'entier, pas besoin de forcément passer par une classe de traits:
On peut effectivement écrire un template si nécessaire. Après si ta question s'applique à C++03... je ne sais pas, il te faut C++11 pour avoir constexpr.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 constexpr int nb1 = 4; constexpr int nb2 = 3; constexpr std::array<int,2> roger {{ nb1 < nb2 ? nb1 : nb2, nb1 < nb2 ? nb2 : nb1 }};
Find me on github
Bonjour,
merci pour ta réponse!
C'est à peu près ce que je veux faire mais on m'a toujours déconseillé d'utiliser ces macros.
Je pense que c'est faisable en C++03 mais s'il faut C++11 ce n'est pas un problème.
Pour information, je viens de trouver ceci :
http://www.boost.org/doc/libs/1_43_0...er/minmax.html
Je suis en train de regarder les sources pour en comprendre le principe.
Comme indiqué précédemment, peut s'inspirer de la fonction static_min de boost :
On peut par exemple implémenter une paire ordonnée comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 template< int left, int right > struct static_min { static const int value = (left < right) ? left : right; };
Je ne sais pas si on peut faire mieux mais c'est un début.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 template< int left, int right > struct ordered_pair { static const int min = (left < right) ? left : right; static const int max = (left > right) ? left : right; };
Find me on github
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager