std:: in_range
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
헤더 파일에 정의됨
<utility>
|
||
|
template
<
class
R,
class
T
>
constexpr bool in_range ( T t ) noexcept ; |
(C++20부터) | |
R
의 값 범위 내에
t
의 값이 존재하면, 즉
t
가 값 손실 없이
R
로 변환 가능할 경우
true
를 반환합니다.
다음 중 하나라도
T
또는
U
가
정수형
이 아니거나, 문자형이거나,
bool
인 경우 컴파일 타임 오류가 발생합니다.
목차 |
매개변수
| t | - | 테스트할 값 |
반환값
true
만약
t
의 값이
R
에서 표현 가능한 경우,
false
그렇지 않은 경우.
가능한 구현
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()); } |
참고 사항
이 함수는 enums ( std::byte 포함), char , char8_t , char16_t , char32_t , wchar_t 그리고 bool 과 함께 사용할 수 없습니다.
| 기능 테스트 매크로 | 값 | 표준 | 기능 |
|---|---|---|---|
__cpp_lib_integer_comparison_functions
|
202002L
|
(C++20) | 정수 비교 함수 |
예제
#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'; }
출력:
false true
참고 항목
|
(C++20)
|
주어진 값들 중 더 작은 값을 반환합니다
(알고리즘 함수 객체) |
|
(C++20)
|
주어진 값들 중 더 큰 값을 반환합니다
(알고리즘 함수 객체) |
|
(C++20)
|
값을 두 경계값 사이로 고정합니다
(알고리즘 함수 객체) |
|
(C++20)
|
선형 보간 함수
(함수) |