std:: in_range
|
Definiert im Header
<utility>
|
||
|
template
<
class
R,
class
T
>
constexpr bool in_range ( T t ) noexcept ; |
(seit C++20) | |
Gibt
true
zurück, wenn der Wert von
t
im Wertebereich von
R
liegt, das heißt, wenn
t
auf werterhaltende Weise in
R
konvertiert werden kann.
Es ist ein Kompilierzeitfehler, wenn entweder
T
oder
U
ein Nicht-
Integer
-Typ, ein Zeichentyp oder
bool
ist.
Inhaltsverzeichnis |
Parameter
| t | - | zu testender Wert |
Rückgabewert
true
falls der Wert von
t
in
R
darstellbar ist,
false
andernfalls.
Mögliche Implementierung
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()); } |
Hinweise
Diese Funktion kann nicht mit enums (einschließlich std::byte ), char , char8_t , char16_t , char32_t , wchar_t und bool verwendet werden.
| Feature-Test Makro | Wert | Std | Funktion |
|---|---|---|---|
__cpp_lib_integer_comparison_functions
|
202002L
|
(C++20) | Integer-Vergleichsfunktionen |
Beispiel
#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'; }
Ausgabe:
false true
Siehe auch
|
(C++20)
|
gibt den kleineren der gegebenen Werte zurück
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
gibt den größeren der gegebenen Werte zurück
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
begrenzt einen Wert zwischen einem Paar von Grenzwerten
(Algorithmus-Funktionsobjekt) |
|
(C++20)
|
lineare Interpolationsfunktion
(Funktion) |