41 template<
typename A,
typename B>
44 template<
typename A,
typename B>
47 template<
typename From,
typename To>
50 template<
typename From,
typename To>
53 template<
typename Left,
typename Right>
56 template<
typename Left,
typename Right>
59 template<
typename Derivative,
typename Base>
62 std::remove_pointer_t<std::decay_t<Base>>,
63 std::remove_pointer_t<std::decay_t<Derivative>>
69 concept CIntegral = std::is_integral_v<std::decay_t<T>>;
100 template<
typename A,
typename B>
102 requires(
const std::remove_reference_t<A>& a,
const std::remove_reference_t<B>& b)
109 template<
typename A,
typename B>
115 template<
typename A,
typename B>
116 concept CHalfOrdered =
requires(
const std::remove_reference_t<A>& a,
const std::remove_reference_t<B>& b)
124 template<
typename A,
typename B>
139 template<
typename T,
typename... From>
176 template<
typename Function,
typename... Args>
177 concept CInvocable =
requires(std::decay_t<Function>&& function, Args&&... args)
179 std::invoke(
FWD(function), Forward<Args&&>(args)...);
182 template<
typename Function,
typename... Args>
185 template<
typename Function,
typename A,
typename B>
193 template<
typename Function,
typename A,
typename B>
196 template<
typename Function,
typename A,
typename B>
199 template <
typename T>
202 template <
typename T>
206 template<
typename Concept,
typename... Args>
207 concept CModels = TModels_V<Concept, Args...>;
229 template<
typename T,
typename ElementType>
232 template<
typename T,
typename ElementType>
235 template<
typename T,
typename ElementType>
238 template<
typename T,
typename ElementType>
241 template<
typename T,
typename ElementType>
244 template<
typename T,
typename ElementType>
253 concept CInterface = TIsIInterface<std::decay_t<T>>::Value > 0;
296 template <
typename T>
297 concept CPointer = std::is_pointer_v<std::decay_t<T>>;
299 template <
typename T>
300 concept CClass = std::is_class_v<std::decay_t<T>>;
302 template <
typename T>
303 concept CUnion = std::is_union_v<std::decay_t<T>>;
305 template <
typename T>
319 template<
typename ClassType,
typename MemberType>
326 template<
typename MemberPo
inter>
347 template <
typename OwnerObject,
typename MemberPo
interType>
349 std::is_member_pointer_v<MemberPointerType>
355 template <
typename T>
358 template <
typename T>
361 template <
typename T>
368 template <
typename T>
369 concept CRangeMember =
requires(std::decay_t<T>&& t) { t.begin(); t.end(); };
371 template <
typename T>
374 template <
typename T>
377 template <
typename T>
381 template <CVal
idable T>
386 else return static_cast<bool>(input);