Namespaces
Variants

std:: in_range

From cppreference.net
Utilities library
헤더 파일에 정의됨 <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)
선형 보간 함수
(함수)