9namespace charptr_cast_detail {
24template <
typename T, std::
size_t N>
31using DecayArray = DecayArrayInternal<T>::type;
35concept IsChar = std::same_as<T, char> || std::same_as<T, unsigned char>;
43template<
typename From,
typename To>
46 requires !std::is_const_v<From> || std::is_const_v<To>;
48 requires !std::is_volatile_v<From> && !std::is_volatile_v<To>;
51template<
typename From,
typename To>
56 requires !std::is_pointer_v<From> && !std::is_pointer_v<To>;
76template<
typename From,
typename To,
typename =
void>
80template<
typename From,
typename To>
81struct RecursionHelper<From, To, std::enable_if_t<BaseCase<From, To>>> : std::true_type
84template<
typename From,
typename To>
88 std::enable_if_t<std::is_pointer_v<From> && std::is_pointer_v<To> && ValidQualifiers<From, To>>>
89 :
RecursionHelper<std::remove_pointer_t<From>, std::remove_pointer_t<To>>
92template<
typename From,
typename To>
133template<
typename To,
typename From>
135inline To charptr_cast(From p)
138 return reinterpret_cast<To
>(p);
Definition charptr-cast.hh:52
Definition charptr-cast.hh:93
Definition charptr-cast.hh:35
Definition charptr-cast.hh:38
Definition charptr-cast.hh:41
Definition charptr-cast.hh:44
Definition charptr-cast.hh:14
Definition charptr-cast.hh:78