12 return typename std::underlying_type_t<T>(t);
24 template <
class OutPo
inter,
class InChar>
27 return reinterpret_cast<OutPointer
>(in);
33 template <
typename T, std::
size_t N>
35 template <
typename... Ts>
36 struct is_linear_container<
std::vector<Ts...>> : std::true_type {};
std::enable_if< is_utf16char_like< InChar >::value &&is_utf16char_like_pointer< OutPointer >::value, OutPointer >::type utf16char_cast(InChar *in)
std::integral_constant< bool, std::is_pointer_v< T > &&is_utf16char_like< typename std::remove_pointer< T >::type >::value > is_utf16char_like_pointer
constexpr auto underlying_type(T t) -> typename std::underlying_type_t< T >