std::in_range
Von cppreference.com
| Definiert in der Header-Datei <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 liegt, der in R dargestellt werden kann, d.h., wenn t werterhaltend in R konvertiert werden kann.
Es ist ein Kompilierungsfehler, wenn entweder T oder U kein Ganzzahltyp, ein Zeichentyp oder bool ist.
Inhalt |
[bearbeiten] Parameter
| t | - | zu testender Wert |
[bearbeiten] Rückgabewert
true, wenn der Wert von t in R darstellbar ist, false andernfalls.
[bearbeiten] 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()); } |
[bearbeiten] Hinweise
Diese Funktion kann nicht mit Aufzählungstypen (einschließlich std::byte), char, char8_t, char16_t, char32_t, wchar_t und bool verwendet werden.
| Feature-Test-Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_integer_comparison_functions |
202002L |
(C++20) | Ganzzahl-Vergleichsfunktionen |
[bearbeiten] Beispiel
Führen Sie diesen Code aus
#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
[bearbeiten] Siehe auch
| (C++20) |
Gibt den kleineren der beiden Werte zurück (Algorithmus-Funktionsobjekt) |
| (C++20) |
Gibt den größeren der beiden Werte zurück (Algorithmus-Funktionsobjekt) |
| (C++20) |
klemmt einen Wert zwischen einem Paar von Grenzwerte (Algorithmus-Funktionsobjekt) |
| (C++20) |
Lineare Interpolationsfunktion (Funktion) |