ranges_ssize

ranges_ssize (범위 부호 있는 크기)

std::ranges::ssize은 t의 요소 수를 상수 시간에 계산하고 그 결과를 부호 있는 타입으로 변환하는 커스터마이제이션 포인트 객체예요. C++20부터 사용할 수 있어요.

출처: cppreference

본문

<ranges> 헤더에 정의되어 있고, <iterator> 헤더에도 정의돼요.

inline namespace /* unspecified */ {
    inline constexpr /* unspecified */ ssize = /* unspecified */;
}

(since C++20) (customization point object)

호출 시그니처:

template< class T >
    requires /* see below */
constexpr auto ssize( T&& t );

(since C++20)

t의 요소 수를 상수 시간에 계산하고 그 결과를 부호 있는 타입으로 변환해요.

  • ranges::size(t)가 표현식 등가로 valid하면 그 타입이 부호 있는 정수라면 size(t)를 반환하고, 아니면 static_cast<ptrdiff_t>(ranges::size(t))를 반환하거나 (만약 표현 가능하다면) static_cast</*make-signed*/>(ranges::size(t))를 반환해요.
  • 그 외에는 ssize(t)을 반환해요.

참고 (Notes)

반환 타입은 부호 있는 정수 타입이며, 일반적으로 std::ptrdiff_t예요. 알고리즘에서 크기를 부호 있는 값으로 다룰 때 유용해요.

더 알아보기 (Learn more)

cppreference