38 template<
typename A,
typename B>
41 template<
typename A,
typename B>
44 template<
typename From,
typename To>
47 template<
typename From,
typename To>
50 template<
typename Left,
typename Right>
53 template<
typename Left,
typename Right>
56 template<
typename Derivative,
typename Base>
59 std::remove_pointer_t<std::decay_t<Base>>,
60 std::remove_pointer_t<std::decay_t<Derivative>>
66 concept CIntegral = std::is_integral_v<std::decay_t<T>>;
97 template<
typename A,
typename B>
99 requires(
const std::remove_reference_t<A>& a,
const std::remove_reference_t<B>& b)
106 template<
typename A,
typename B>
112 template<
typename A,
typename B>
113 concept CHalfOrdered =
requires(
const std::remove_reference_t<A>& a,
const std::remove_reference_t<B>& b)
113 concept CHalfOrdered =
requires(
const std::remove_reference_t<A>& a,
const std::remove_reference_t<B>& b) {
…}
121 template<
typename A,
typename B>
136 template<
typename T,
typename... From>
173 template<
typename Function,
typename... Args>
174 concept CInvocable =
requires(std::decay_t<Function>&& function, Args&&... args)
176 std::invoke(Forward<std::decay_t<Function>&&>(function), Forward<Args&&>(args)...);
174 concept CInvocable =
requires(std::decay_t<Function>&& function, Args&&... args) {
…}
179 template<
typename Function,
typename... Args>
182 template<
typename Function,
typename A,
typename B>
190 template<
typename Function,
typename A,
typename B>
193 template<
typename Function,
typename A,
typename B>
197 template<
typename Concept,
typename... Args>
198 concept CModels = TModels_V<Concept, Args...>;
220 template<
typename T,
typename ElementType>
223 template<
typename T,
typename ElementType>
226 template<
typename T,
typename ElementType>
229 template<
typename T,
typename ElementType>
232 template<
typename T,
typename ElementType>
235 template<
typename T,
typename ElementType>
244 concept CInterface = TIsIInterface<std::decay_t<T>>::Value > 0;
284 template <
typename T>
285 concept CPointer = std::is_pointer_v<std::decay_t<T>>;
287 template <
typename T>
288 concept CClass = std::is_class_v<std::decay_t<T>>;
290 template <
typename T>
291 concept CUnion = std::is_union_v<std::decay_t<T>>;
293 template <
typename T>
307 template<
typename ClassType,
typename MemberType>
314 template<
typename MemberPo
inter>
335 template <
typename OwnerObject,
typename MemberPo
interType>
337 std::is_member_pointer_v<MemberPointerType>
343 template <
typename T>
346 template <
typename T>
349 template <
typename T>
356 template <
typename T>
357 concept CRangeMember =
requires(std::decay_t<T>&& t) { t.begin(); t.end(); };
359 template <
typename T>
362 template <
typename T>
365 template <
typename T>
369 template <CVal
idable T>
374 else return static_cast<bool>(input);