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예요. 알고리즘에서 크기를 부호 있는 값으로 다룰 때 유용해요.