Namespaces
Variants

std:: indirect_strict_weak_order

From cppreference.net
Iterator library
Iterator concepts
Iterator primitives
Algorithm concepts and utilities
Indirect callable concepts
indirect_strict_weak_order
(C++20)
Common algorithm requirements
(C++20)
(C++20)
(C++20)
Utilities
(C++20)
Iterator adaptors
Range access
(C++11) (C++14)
(C++14) (C++14)
(C++11) (C++14)
(C++14) (C++14)
(C++17) (C++20)
(C++17)
(C++17)
헤더에 정의됨 <iterator>
template < class F, class I1, class I2 = I1 >

concept indirect_strict_weak_order =
std:: indirectly_readable < I1 > &&
std:: indirectly_readable < I2 > &&
std:: copy_constructible < F > &&
std:: strict_weak_order
< F & , /*indirect-value-t*/ < I1 > , /*indirect-value-t*/ < I2 >> &&
std:: strict_weak_order
< F & , /*indirect-value-t*/ < I1 > , std:: iter_reference_t < I2 >> &&
std:: strict_weak_order
< F & , std:: iter_reference_t < I1 > , /*indirect-value-t*/ < I2 >> &&
std:: strict_weak_order

< F & , std:: iter_reference_t < I1 > , std:: iter_reference_t < I2 >> ;
(C++20부터)

indirect_strict_weak_order 개념은 엄격한 약 순서(strict weak order)를 인자로 호출하는 알고리즘의 요구 사항을 명시합니다. 이 개념과 std::strict_weak_order 사이의 주요 차이점은 I1 I2 자체가 아닌, I1 I2 가 참조하는 타입에 적용된다는 점입니다.

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 수정된 동작
P2609R3 C++20 일부 요구사항이
std:: iter_value_t < I > & 관점에서 정의되어
투영(projection)을 잘못 처리하여
엄격한 약순서(strict weak order)와 호환되지 않음 F &
다음 관점에서 정의됨
/*indirect-value-t*/ < I > 를 통해
해당 투영들을 올바르게 처리
P2997R1 C++20 indirect_strict_weak_order F & 가 다음을 만족할 것을 요구함
strict_weak_order std:: iter_common_reference_t < I >
요구하지 않음