Lines Matching refs:P
90 template <typename P>
91 constexpr NonNull(Passkey, P&& pointer) : pointer_(std::forward<P>(pointer)) { in NonNull()
96 template <typename P>
97 friend constexpr auto as_non_null(P&&) -> NonNull<std::decay_t<P>>;
102 template <typename P>
103 [[nodiscard]] constexpr auto as_non_null(P&& pointer) -> NonNull<std::decay_t<P>> {
104 using Passkey = typename NonNull<std::decay_t<P>>::Passkey;
105 return {Passkey{}, std::forward<P>(pointer)};
110 template <typename P, typename Q>
111 constexpr bool operator==(const NonNull<P>& lhs, const NonNull<Q>& rhs) {
115 template <typename P, typename Q>
116 constexpr bool operator!=(const NonNull<P>& lhs, const NonNull<Q>& rhs) {
120 template <typename P, typename Q>
121 constexpr bool operator<(const NonNull<P>& lhs, const NonNull<Q>& rhs) {
125 template <typename P, typename Q>
126 constexpr bool operator<=(const NonNull<P>& lhs, const NonNull<Q>& rhs) {
130 template <typename P, typename Q>
131 constexpr bool operator>=(const NonNull<P>& lhs, const NonNull<Q>& rhs) {
135 template <typename P, typename Q>
136 constexpr bool operator>(const NonNull<P>& lhs, const NonNull<Q>& rhs) {
142 template <typename P, typename Q>
143 constexpr bool operator==(const NonNull<P>& lhs, const Q& rhs) {
147 template <typename P, typename Q>
148 constexpr bool operator!=(const NonNull<P>& lhs, const Q& rhs) {
152 template <typename P, typename Q>
153 constexpr bool operator<(const NonNull<P>& lhs, const Q& rhs) {
157 template <typename P, typename Q>
158 constexpr bool operator<=(const NonNull<P>& lhs, const Q& rhs) {
162 template <typename P, typename Q>
163 constexpr bool operator>=(const NonNull<P>& lhs, const Q& rhs) {
167 template <typename P, typename Q>
168 constexpr bool operator>(const NonNull<P>& lhs, const Q& rhs) {
174 template <typename P, typename Q>
175 constexpr bool operator==(const P& lhs, const NonNull<Q>& rhs) {
179 template <typename P, typename Q>
180 constexpr bool operator!=(const P& lhs, const NonNull<Q>& rhs) {
184 template <typename P, typename Q>
185 constexpr bool operator<(const P& lhs, const NonNull<Q>& rhs) {
189 template <typename P, typename Q>
190 constexpr bool operator<=(const P& lhs, const NonNull<Q>& rhs) {
194 template <typename P, typename Q>
195 constexpr bool operator>=(const P& lhs, const NonNull<Q>& rhs) {
199 template <typename P, typename Q>
200 constexpr bool operator>(const P& lhs, const NonNull<Q>& rhs) {
207 template <typename P>
208 struct std::hash<android::ftl::NonNull<P>> {
209 std::size_t operator()(const android::ftl::NonNull<P>& ptr) const {
210 return std::hash<P>()(ptr.get());