std:: in_range
|
Défini dans l'en-tête
<utility>
|
||
|
template
<
class
R,
class
T
>
constexpr bool in_range ( T t ) noexcept ; |
(depuis C++20) | |
Retourne
true
si la valeur de
t
se trouve dans la plage de valeurs pouvant être représentées dans
R
, c'est-à-dire si
t
peut être converti en
R
de manière à préserver sa valeur.
C'est une erreur de compilation si soit
T
soit
U
est un type non-
entier
, un type caractère, ou
bool
.
Table des matières |
Paramètres
| t | - | valeur à tester |
Valeur de retour
true
si la valeur de
t
est représentable dans
R
,
false
sinon.
Implémentation possible
template<class R, class T> constexpr bool in_range(T t) noexcept { return std::cmp_greater_equal(t, std::numeric_limits<R>::min()) && std::cmp_less_equal(t, std::numeric_limits<R>::max()); } |
Notes
Cette fonction ne peut pas être utilisée avec les énumérations (y compris std::byte ), char , char8_t , char16_t , char32_t , wchar_t et bool .
| Macro de test de fonctionnalité | Valeur | Std | Fonctionnalité |
|---|---|---|---|
__cpp_lib_integer_comparison_functions
|
202002L
|
(C++20) | Fonctions de comparaison d'entiers |
Exemple
#include <iostream> #include <utility> int main() { std::cout << std::boolalpha; std::cout << std::in_range<std::size_t>(-1) << '\n'; std::cout << std::in_range<std::size_t>(42) << '\n'; }
Sortie :
false true
Voir aussi
|
(C++20)
|
retourne la plus petite des valeurs données
(objet fonction algorithme) |
|
(C++20)
|
retourne la plus grande des valeurs données
(objet fonction algorithme) |
|
(C++20)
|
limite une valeur entre une paire de valeurs limites
(objet fonction algorithme) |
|
(C++20)
|
fonction d'interpolation linéaire
(fonction) |