std::in_range
De cppreference.com
Definido en el archivo de encabezado <utility> | ||
template<class R, class T > constexprbool in_range( T t )noexcept; | (desde C++20) | |
Devuelve true si el valor de t
se encuentra en el rango de valores que puede representarse en R
; es decir, si t
puede convertirse a R
sin pérdida de datos.
Es un error en tiempo de compilación si ya sea T
o R
no es un tipo entero con signo o sin signo (incluyendo el tipo entero estándar y los tipos enteros extendidos).
Contenido |
[editar]Parámetros
t | - | Valor a probar. |
[editar]Valor de retorno
true si el valor de t
es representable en R
; de lo contrario, false.
[editar]Posible implementación
template<class R, class T >constexprbool in_range( T t )noexcept{returnstd::cmp_greater_equal(t, std::numeric_limits<R>::min())&&std::cmp_less_equal(t, std::numeric_limits<R>::max());} |
[editar]Notas
Esta función no puede usarse con std::byte, char, char8_t, char16_t, char32_t, wchar_t y bool.
[editar]Ejemplo
Ejecuta este código
#include <utility>#include <iostream>#include <iomanip> 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
[editar]Véase también
(C++20) | Devuelve el menor de los valores dados (niebloid) |
(C++20) | Devuelve el mayor de los valores dados (niebloid) |
(C++20) | Sujeta un valor entre un par de valores límite. (niebloid) |
(C++20) | Función de interpolación lineal (función) |