6#ifndef MIMICPP_UTILITIES_CONCEPTS_HPP
7#define MIMICPP_UTILITIES_CONCEPTS_HPP
13#ifndef MIMICPP_DETAIL_IS_MODULE
33 template <
typename From,
typename To>
36 static_cast<To
>(std::declval<From>());
42 template <
typename From,
typename To>
46 {
static_cast<To
>(std::declval<From>()) }
noexcept;
52 template <
typename T,
typename... Others>
58 template <
typename T,
template <
typename>
typename Trait>
67 std::convertible_to<B, bool>
69 { !std::forward<B>(b) } -> std::convertible_to<bool>;
77 template <
typename T,
typename U>
79 requires(std::remove_reference_t<T>
const& t, std::remove_reference_t<U>
const& u) {
#define MIMICPP_DETAIL_MODULE_EXPORT
Definition Config.hpp:19
Determines, whether B behaves as a the builtin type bool.
Definition Concepts.hpp:66
Determines, whether From can be explicitly converted to To.
Definition Concepts.hpp:34
Determines, whether From can be explicitly converted to To, without throwing.
Definition Concepts.hpp:43
Determines, whether T is the same as any type of the pack Others.
Definition Concepts.hpp:53
Determines, whether T satisfies the specified trait type.
Definition Concepts.hpp:59
Determines, whether T can be equality compared with U.
Definition Concepts.hpp:78