37 template<
typename A,
typename B>
40 template<
typename A,
typename B>
43 template<
typename From,
typename To>
46 template<
typename From,
typename To>
49 template<
typename Left,
typename Right>
52 template<
typename Left,
typename Right>
55 template<
typename Derivative,
typename Base>
58 std::remove_pointer_t<std::decay_t<Base>>,
59 std::remove_pointer_t<std::decay_t<Derivative>>
65 concept CIntegral = std::is_integral_v<std::decay_t<T>>;
96 template<
typename A,
typename B>
98 requires(
const std::remove_reference_t<A>& a,
const std::remove_reference_t<B>& b)
105 template<
typename A,
typename B>
111 template<
typename A,
typename B>
112 concept CHalfOrdered =
requires(
const std::remove_reference_t<A>& a,
const std::remove_reference_t<B>& b)
120 template<
typename A,
typename B>
135 template<
typename T,
typename... From>
172 template<
typename Function,
typename... Args>
173 concept CInvocable =
requires(std::decay_t<Function>&& function, Args&&... args)
175 std::invoke(Forward<std::decay_t<Function>&&>(function), Forward<Args&&>(args)...);
178 template<
typename Function,
typename... Args>
181 template<
typename Function,
typename A,
typename B>
189 template<
typename Function,
typename A,
typename B>
192 template<
typename Function,
typename A,
typename B>
196 template<
typename Concept,
typename... Args>
197 concept CModels = TModels_V<Concept, Args...>;
225 concept CInterface = TIsIInterface<std::decay_t<T>>::Value > 0;
246 template <
typename T>
247 concept CPointer = std::is_pointer_v<std::decay_t<T>>;
249 template <
typename T>
250 concept CClass = std::is_class_v<std::decay_t<T>>;
252 template <
typename T>
253 concept CUnion = std::is_union_v<std::decay_t<T>>;
255 template <
typename T>
269 template<
typename ClassType,
typename MemberType>
276 template<
typename MemberPo
inter>
297 template <
typename OwnerObject,
typename MemberPo
interType>
299 std::is_member_pointer_v<MemberPointerType>
305 template <
typename T>
315 template <
typename T>
316 concept CRange =
requires(std::decay_t<T>
const& t)