Je definis parfois des types a semantique de valeur dont les valeurs ont un range valid predetermine.
Par exemple, j'ai une class Port (en gros comme un port de protocol reseau, mais dans un cadre different et totalement pas pareil).
J'ai definis Port pour que:
1. Port() est invalid.
2. Port(0) a Port(8) sont valid, tout autre valeure est invalide (pour l'instant j'assert mais je pourrais lancer une exception peut etre...).
3. port++, ++port, --port, port-- sont definis et font les iterations logiquement, et peuvent donc resulter en des valeurs invalides.
4. bool is_valid( const Port& port ) qui retourne true si le port a une valeur dans les valeurs valides.
Je voudrais pouvoir ecrire (en c++11 compatible avec VS2012):
Ma question est: est-ce qu'il y a un moyen simple et court de definir valid_port_range()?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 for( Port port : valid_ports_range() ) { // utilise port }
Apparemment, la definition du range dans ce cas est serieusement relou.
Ou alors il y a un truc simple que je vois pas, et du coup je m'en remet a votre experience.
Note: je vois bien comment definir ce range, c'est vraiment une version courte que j'aimerai conaitre.
Partager