Est-ce que quelqu'un a déjà pensé à pondre une fonction template,
permettant de vérifier qu'une valeur se trouve dans une intervalle ?
Style:
template< typename T, class LOWER_BOUND, class UPPER_BOUND >
bool IsInside( const T & data, const T & lowerBound, const T & upperBound ) {
return( LOWER_BOUND( data ) && UPPER_BOUND( data ) );
}
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Michel Decima
In news:e15bu9$uf4$, Stephane Wirtel typed:
Bonjour à tous,
Est-ce que quelqu'un a déjà pensé à pondre une fonction template, permettant de vérifier qu'une valeur se trouve dans une intervalle ?
Style:
template< typename T, class LOWER_BOUND, class UPPER_BOUND > bool IsInside( const T & data, const T & lowerBound, const T & upperBound ) { return( LOWER_BOUND( data ) && UPPER_BOUND( data ) ); }
Les parametres lowerBound et upperBound ne sont pas utilises ?
In news:e15bu9$uf4$1@news.brutele.be,
Stephane Wirtel <com.descasoft@wirtel.stephane> typed:
Bonjour à tous,
Est-ce que quelqu'un a déjà pensé à pondre une fonction template,
permettant de vérifier qu'une valeur se trouve dans une intervalle ?
Style:
template< typename T, class LOWER_BOUND, class UPPER_BOUND >
bool IsInside( const T & data, const T & lowerBound, const T &
upperBound ) { return( LOWER_BOUND( data ) && UPPER_BOUND( data ) );
}
Les parametres lowerBound et upperBound ne sont pas utilises ?
Est-ce que quelqu'un a déjà pensé à pondre une fonction template, permettant de vérifier qu'une valeur se trouve dans une intervalle ?
Style:
template< typename T, class LOWER_BOUND, class UPPER_BOUND > bool IsInside( const T & data, const T & lowerBound, const T & upperBound ) { return( LOWER_BOUND( data ) && UPPER_BOUND( data ) ); }
Les parametres lowerBound et upperBound ne sont pas utilises ?
Stephane Wirtel
Michel Decima said the following on 7/04/2006 12:26:
In news:e15bu9$uf4$, Stephane Wirtel typed:
Bonjour à tous,
Est-ce que quelqu'un a déjà pensé à pondre une fonction template, permettant de vérifier qu'une valeur se trouve dans une intervalle ?
Style:
template< typename T, class LOWER_BOUND, class UPPER_BOUND > bool IsInside( const T & data, const T & lowerBound, const T & upperBound ) { return( LOWER_BOUND( data ) && UPPER_BOUND( data ) ); }
Les parametres lowerBound et upperBound ne sont pas utilises ? Oui c'est un oubli, mais je pense que tout le monde avait compris l'idée
Voici la modif
template< typename T, template< typename T > class LOWERBOUND, template< typename T > class UPPERBOUND > bool IsInside(const T &data, const T & lowerBound, const T & upperBound) { LOWERBOUND<T> lower; UPPERBOUND<T> upper;
return(lower( lowerBound, data ) && upper( data, upperBound )); }
Michel Decima said the following on 7/04/2006 12:26:
In news:e15bu9$uf4$1@news.brutele.be,
Stephane Wirtel <com.descasoft@wirtel.stephane> typed:
Bonjour à tous,
Est-ce que quelqu'un a déjà pensé à pondre une fonction template,
permettant de vérifier qu'une valeur se trouve dans une intervalle ?
Style:
template< typename T, class LOWER_BOUND, class UPPER_BOUND >
bool IsInside( const T & data, const T & lowerBound, const T &
upperBound ) { return( LOWER_BOUND( data ) && UPPER_BOUND( data ) );
}
Les parametres lowerBound et upperBound ne sont pas utilises ?
Oui c'est un oubli, mais je pense que tout le monde avait compris l'idée
Voici la modif
template<
typename T,
template< typename T > class LOWERBOUND,
template< typename T > class UPPERBOUND >
bool IsInside(const T &data, const T & lowerBound, const T & upperBound) {
LOWERBOUND<T> lower;
UPPERBOUND<T> upper;
return(lower( lowerBound, data ) && upper( data, upperBound ));
}
Michel Decima said the following on 7/04/2006 12:26:
In news:e15bu9$uf4$, Stephane Wirtel typed:
Bonjour à tous,
Est-ce que quelqu'un a déjà pensé à pondre une fonction template, permettant de vérifier qu'une valeur se trouve dans une intervalle ?
Style:
template< typename T, class LOWER_BOUND, class UPPER_BOUND > bool IsInside( const T & data, const T & lowerBound, const T & upperBound ) { return( LOWER_BOUND( data ) && UPPER_BOUND( data ) ); }
Les parametres lowerBound et upperBound ne sont pas utilises ? Oui c'est un oubli, mais je pense que tout le monde avait compris l'idée
Voici la modif
template< typename T, template< typename T > class LOWERBOUND, template< typename T > class UPPERBOUND > bool IsInside(const T &data, const T & lowerBound, const T & upperBound) { LOWERBOUND<T> lower; UPPERBOUND<T> upper;
return(lower( lowerBound, data ) && upper( data, upperBound )); }
John Deuf
Stephane Wirtel :
Est-ce que quelqu'un a déjà pensé à pondre une fonction template, permettant de vérifier qu'une valeur se trouve dans une intervalle ?
A la compilation ou a l'execution ? A la compilation, tu peux utiliser static assert de boost.
-- John Deuf
Stephane Wirtel :
Est-ce que quelqu'un a déjà pensé à pondre une fonction template,
permettant de vérifier qu'une valeur se trouve dans une intervalle ?
A la compilation ou a l'execution ?
A la compilation, tu peux utiliser static assert de boost.
Est-ce que quelqu'un a déjà pensé à pondre une fonction template, permettant de vérifier qu'une valeur se trouve dans une intervalle ?
A la compilation ou a l'execution ? A la compilation, tu peux utiliser static assert de boost.
A l'exécution bien entendu :p
Vincent Lascaux
template< typename T, template< typename T > class LOWERBOUND, template< typename T > class UPPERBOUND > bool IsInside(const T &data, const T & lowerBound, const T & upperBound) { LOWERBOUND<T> lower; UPPERBOUND<T> upper;
return(lower( lowerBound, data ) && upper( data, upperBound )); }
Pour quel genre de données upper(data, upperBound) n'est pas pareil que lower(upperBound, data) ? Je vois bien l'interet de faire un truc géneric, mais bon, faut pas exagerer non plus :)
D'autre part, quel est l'interet de cette version par rapport à par exemple
template< typename T, template< typename T > class LOWERBOUND, template< typename T > class UPPERBOUND > bool IsInside(const T &data, const T & lowerBound, const T & upperBound) { return LOWERBOUND<T>::comp(lowerBound, data) && UPPERBOUND<T>::comp(data, upperBound); }
Ma version ca serait plutot (si ca compile, sinon le lecteur corrigera la faute évidente par lui même)
template<typename T, typename Less = std::less<typename T> > bool IsInside(const T& data, const T& lowerBound, const T& upperBound, Less less = Less()) { return less(lowerBound, data) && less(data, upperBound); }
-- Vincent
template<
typename T,
template< typename T > class LOWERBOUND,
template< typename T > class UPPERBOUND >
bool IsInside(const T &data, const T & lowerBound, const T & upperBound) {
LOWERBOUND<T> lower;
UPPERBOUND<T> upper;
return(lower( lowerBound, data ) && upper( data, upperBound ));
}
Pour quel genre de données upper(data, upperBound) n'est pas pareil que
lower(upperBound, data) ?
Je vois bien l'interet de faire un truc géneric, mais bon, faut pas exagerer
non plus :)
D'autre part, quel est l'interet de cette version par rapport à par exemple
template<
typename T,
template< typename T > class LOWERBOUND,
template< typename T > class UPPERBOUND >
bool IsInside(const T &data, const T & lowerBound, const T & upperBound) {
return LOWERBOUND<T>::comp(lowerBound, data) &&
UPPERBOUND<T>::comp(data, upperBound);
}
Ma version ca serait plutot (si ca compile, sinon le lecteur corrigera la
faute évidente par lui même)
template<typename T, typename Less = std::less<typename T> >
bool IsInside(const T& data, const T& lowerBound, const T& upperBound, Less
less = Less())
{
return less(lowerBound, data) && less(data, upperBound);
}
template< typename T, template< typename T > class LOWERBOUND, template< typename T > class UPPERBOUND > bool IsInside(const T &data, const T & lowerBound, const T & upperBound) { LOWERBOUND<T> lower; UPPERBOUND<T> upper;
return(lower( lowerBound, data ) && upper( data, upperBound )); }
Pour quel genre de données upper(data, upperBound) n'est pas pareil que lower(upperBound, data) ? Je vois bien l'interet de faire un truc géneric, mais bon, faut pas exagerer non plus :)
D'autre part, quel est l'interet de cette version par rapport à par exemple
template< typename T, template< typename T > class LOWERBOUND, template< typename T > class UPPERBOUND > bool IsInside(const T &data, const T & lowerBound, const T & upperBound) { return LOWERBOUND<T>::comp(lowerBound, data) && UPPERBOUND<T>::comp(data, upperBound); }
Ma version ca serait plutot (si ca compile, sinon le lecteur corrigera la faute évidente par lui même)
template<typename T, typename Less = std::less<typename T> > bool IsInside(const T& data, const T& lowerBound, const T& upperBound, Less less = Less()) { return less(lowerBound, data) && less(data, upperBound); }