# operator==,!=,<,<=,>,>=(std::experimental::propagate_const)

< cpp‎ | experimental‎ | propagate const

template <class T> constexpr bool operator==(const propagate_const<T>& pt, nullptr_t); | (1) | (库基础 TS v2)
template <class T> constexpr bool operator==(nullptr_t, const propagate_const<T>& pt); | (2) | (库基础 TS v2)
template <class T> constexpr bool operator!=(const propagate_const<T>& pt, nullptr_t); | (3) | (库基础 TS v2)
template <class T> constexpr bool operator!=(nullptr_t, const propagate_const<T>& pt); | (4) | (库基础 TS v2)
template <class T, class U> constexpr bool operator==(const propagate_const<T>& pt, const propagate_const<U>& pu); | (5) | (库基础 TS v2)
template <class T, class U> constexpr bool operator!=(const propagate_const<T>& pt, const propagate_const<U>& pu); | (6) | (库基础 TS v2)
template <class T, class U> constexpr bool operator<(const propagate_const<T>& pt, const propagate_const<U>& pu); | (7) | (库基础 TS v2)
template <class T, class U> constexpr bool operator>(const propagate_const<T>& pt, const propagate_const<U>& pu); | (8) | (库基础 TS v2)
template <class T, class U> constexpr bool operator<=(const propagate_const<T>& pt, const propagate_const<U>& pu); | (9) | (库基础 TS v2)
template <class T, class U> constexpr bool operator>=(const propagate_const<T>& pt, const propagate_const<U>& pu); | (10) | (库基础 TS v2)
template <class T, class U> constexpr bool operator==(const propagate_const<T>& pt, const U& u); | (11) | (库基础 TS v2)
template <class T, class U> constexpr bool operator!=(const propagate_const<T>& pt, const U& u); | (12) | (库基础 TS v2)
template <class T, class U> constexpr bool operator==(const T& t, const propagate_const<U>& pu); | (13) | (库基础 TS v2)
template <class T, class U> constexpr bool operator!=(const T& t, const propagate_const<U>& pu); | (14) | (库基础 TS v2)
template <class T, class U> constexpr bool operator<(const propagate_const<T>& pt, const U& u); | (15) | (库基础 TS v2)
template <class T, class U> constexpr bool operator>(const propagate_const<T>& pt, const U& u); | (16) | (库基础 TS v2)
template <class T, class U> constexpr bool operator<=(const propagate_const<T>& pt, const U& u); | (17) | (库基础 TS v2)
template <class T, class U> constexpr bool operator>=(const propagate_const<T>& pt, const U& u); | (18) | (库基础 TS v2)
template <class T, class U> constexpr bool operator<(const T& t, const propagate_const<U>& pu); | (19) | (库基础 TS v2)
template <class T, class U> constexpr bool operator>(const T& t, const propagate_const<U>& pu); | (20) | (库基础 TS v2)
template <class T, class U> constexpr bool operator<=(const T& t, const propagate_const<U>& pu); | (21) | (库基础 TS v2)
template <class T, class U> constexpr bool operator>=(const T& t, const propagate_const<U>& pu); | (22) | (库基础 TS v2)

在二个 `propagate_const` 的被包装指针，或一个 `propagate_const` 和 nullptr ，或一个 `propagate_const` 和另一对象之间比较。

1-4) `propagate_const` 和 nullptr 的相等比较。
5-6) 二个 `propagate_const` 的相等比较。
7-10) 二个 `propagate_const` 的顺序比较。
11-14) 一个 `propagate_const` 和另一对象的相等比较。
15-22) 一个 `propagate_const` 和另一对象的顺序比较。

### 参数

pt, pu | - | 要比较的 `propagate_const`
t, u | - | 要比较的另一对象

### 返回值

令 `t_` 代表 `propagate_const` 所包装的底层仿指针对象

1) pt.t_ == nullptr
2) nullptr == pt.t_
3) pt.t_ != nullptr
4) nullptr != pt.t_
5) pt.t_ == pu.t_
6) pt.t_ != pu.t_
7) pt.t_ < pu.t_
8) pt.t_ > pu.t_
9) pt.t_ <= pu.t_
10) pt.t_ >= pu.t_
11) pt.t_ == u
12) pt.t_ != u
13) t == pu.t_
14) t != pu.t_
15) pt.t_ < u
16) pt.t_ > u
17) pt.t_ <= u
18) pt.t_ >= u
19) t < pu.t_
20) t > pu.t_
21) t <= pu.t_
22) t >= pu.t_