std:: in_range
|
Definido en el encabezado
<utility>
|
||
|
template
<
class
R,
class
T
>
constexpr bool in_range ( T t ) noexcept ; |
(desde C++20) | |
Devuelve
true
si el valor de
t
está en el rango de valores que pueden representarse en
R
, es decir, si
t
puede convertirse a
R
de manera que se preserve su valor.
Es un error en tiempo de compilación si
T
o
U
es un tipo no-
entero
, un tipo de carácter, o
bool
.
Contenidos |
Parámetros
| t | - | valor a probar |
Valor de retorno
true
si el valor de
t
es representable en
R
,
false
en caso contrario.
Implementación posible
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()); } |
Notas
Esta función no puede utilizarse con enums (incluyendo std::byte ), char , char8_t , char16_t , char32_t , wchar_t y bool .
| Macro de prueba de características | Valor | Std | Característica |
|---|---|---|---|
__cpp_lib_integer_comparison_functions
|
202002L
|
(C++20) | Funciones de comparación de enteros |
Ejemplo
#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'; }
Salida:
false true
Véase también
|
(C++20)
|
devuelve el menor de los valores dados
(objeto función de algoritmo) |
|
(C++20)
|
devuelve el mayor de los valores dados
(objeto función de algoritmo) |
|
(C++20)
|
limita un valor entre un par de valores límite
(objeto función de algoritmo) |
|
(C++20)
|
función de interpolación lineal
(función) |