feat: add detail::is_std_basic_string

to check if type T is a kind of std::basic_string<Char,...>
This commit is contained in:
ToruNiina
2024-07-10 02:04:19 +09:00
parent 5ac47b8983
commit 826e6414a0

View File

@@ -162,6 +162,12 @@ struct is_std_forward_list_impl<std::forward_list<T>> : std::true_type{};
template<typename T> template<typename T>
using is_std_forward_list = is_std_forward_list_impl<cxx::remove_cvref_t<T>>; using is_std_forward_list = is_std_forward_list_impl<cxx::remove_cvref_t<T>>;
template<typename T> struct is_std_basic_string_impl : std::false_type{};
template<typename T>
struct is_std_basic_string_impl<std::basic_string<T>> : std::true_type{};
template<typename T>
using is_std_basic_string = is_std_basic_string_impl<cxx::remove_cvref_t<T>>;
template<typename T> struct is_chrono_duration_impl: std::false_type{}; template<typename T> struct is_chrono_duration_impl: std::false_type{};
template<typename Rep, typename Period> template<typename Rep, typename Period>
struct is_chrono_duration_impl<std::chrono::duration<Rep, Period>>: std::true_type{}; struct is_chrono_duration_impl<std::chrono::duration<Rep, Period>>: std::true_type{};