Namespaces
Variants

std::experimental::ranges:: Relation

From cppreference.net
헤더 파일에 정의됨 <experimental/ranges/concepts>
template < class R, class T, class U >

concept bool Relation =
Predicate < R, T, T > &&
Predicate < R, U, U > &&
CommonReference <
const std:: remove_reference_t < T > & ,
const std:: remove_reference_t < U > & > &&
Predicate < R,
ranges:: common_reference_t <
const std:: remove_reference_t < T > & ,
const std:: remove_reference_t < U > & > ,
ranges:: common_reference_t <
const std:: remove_reference_t < T > & ,
const std:: remove_reference_t < U > & >> &&
Predicate < R, T, U > &&

Predicate < R, U, T > ;
(1) (ranges TS)

Relation<R, T, U> 개념은 R T 또는 U 에 의해 인코딩된 타입과 값 범주를 가진 표현식들의 집합 위에서 이항 관계를 정의함을 명시합니다.

주어진

  • r , decltype((r)) R 인 표현식,
  • t , decltype((t)) T 인 표현식,
  • u , decltype((u)) U 인 표현식,

그리고 C ranges:: common_reference_t < const std:: remove_reference_t < T > & , const std:: remove_reference_t < U > & > 로 둡니다,

그러면 Relation<R, T, U> 는 다음 조건에서만 충족됩니다

  • bool ( r ( t, u ) ) == bool ( r ( C ( t ) , C ( u ) ) ) 그리고
  • bool ( r ( u, t ) ) == bool ( r ( C ( u ) , C ( t ) ) ) .