Namespaces
Variants

std::ranges::reserve_hint

ko.cppreference.net
 
 
범위 라이브러리
범위 어댑터
 
헤더 <ranges>
에 정의됨<iterator>
inline namespace /* unspecified */ {
    inline constexpr auto reserve_hint = /* unspecified */;
}
(C++26 이후)
(사용자 정의 포인트 객체)
호출 시그니처
template< class T >
    requires /* see below */
constexpr auto reserve_hint( T&& t );
(C++26 이후)

t의 요소 개수를 상수 시간에 추정합니다.

하위 표현식에서 t이 (잠재적으로 구체화된) 결과 객체를 E로 나타내고, E의 타입을 T로 할 때:

  • ranges::size(E)이 유효한 표현식이면, ranges::reserve_hint(E)는 표현식-동등하게 ranges::size(E)입니다.
  • 그렇지 않고, auto(t.reserve_hint())가 정수형 타입의 유효한 표현식이면, ranges::reserve_hint(E)는 표현식-동등하게 auto(t.reserve_hint())입니다.
  • 그렇지 않고, 다음 조건이 모두 만족되면, ranges::reserve_hint(E)는 표현식-동등하게 auto(reserve_hint(t))입니다:
    • T는 클래스 또는 열거형 타입입니다.
    • auto(reserve_hint(t))는 정수형 타입의 유효한 표현식이며, 여기서 reserve_hint의 의미는 오직 인자 종속 조회를 수행한 것처럼 확립됩니다.
  • 그렇지 않으면, ranges::reserve_hint(E)는 잘못된 형태(ill-formed)입니다.

위의 진단 가능한 잘못된 형태의 경우는 치환 실패로 이어지며, 이는 ranges::reserve_hint(E)가 템플릿 인스턴스화의 즉시 문맥에 나타날 때 발생합니다.

커스터마이제이션 포인트 객체

ranges::reserve_hint 이름은 커스터마이제이션 포인트 객체 를 나타내며, 이는 함수 객체 의 리터럴 리터럴 semiregular 클래스 타입의 const 객체입니다. 자세한 내용은 CustomizationPointObject 를 참조하십시오.

참고 사항

ranges :: reserve_hint ( e ) 표현식이 유효할 때마다, 반환 타입은 integer-like 입니다.

기능 테스트 매크로 값 표준 기능
__cpp_lib_ranges_reserve_hint 202502L (C++26) ranges::reserve_hint

예제

참고 항목

범위의 크기와 동일한 정수를 반환합니다
(customization point object)
범위의 크기와 동일한 부호 있는 정수를 반환합니다
(customization point object)
범위가 상수 시간에 크기를 추정할 수 있음을 지정합니다
(concept)