mirror of
https://github.com/bolero-MURAKAMI/Sprout.git
synced 2025-10-19 13:49:23 +00:00
fix type-traits
This commit is contained in:
parent
8f818ee63f
commit
3eafabb1ed
15 changed files with 202 additions and 136 deletions
|
@ -19,6 +19,14 @@ namespace sprout {
|
|||
struct is_expr<T const>
|
||||
: public sprout::weed::traits::is_expr<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_expr<T volatile>
|
||||
: public sprout::weed::traits::is_expr<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_expr<T const volatile>
|
||||
: public sprout::weed::traits::is_expr<T>
|
||||
{};
|
||||
template<typename Tag, typename... Args>
|
||||
struct is_expr<sprout::weed::expr<Tag, Args...> >
|
||||
: public std::true_type
|
||||
|
|
|
@ -18,6 +18,14 @@ namespace sprout {
|
|||
struct is_c_str<T const>
|
||||
: public sprout::weed::traits::is_c_str<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_c_str<T volatile>
|
||||
: public sprout::weed::traits::is_c_str<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_c_str<T const volatile>
|
||||
: public sprout::weed::traits::is_c_str<T>
|
||||
{};
|
||||
template<std::size_t N>
|
||||
struct is_c_str<char const[N]>
|
||||
: public std::true_type
|
||||
|
|
|
@ -18,6 +18,14 @@ namespace sprout {
|
|||
struct is_char_type<T const>
|
||||
: public sprout::weed::traits::is_char_type<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_char_type<T volatile>
|
||||
: public sprout::weed::traits::is_char_type<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_char_type<T const volatile>
|
||||
: public sprout::weed::traits::is_char_type<T>
|
||||
{};
|
||||
template<>
|
||||
struct is_char_type<char>
|
||||
: public std::true_type
|
||||
|
|
|
@ -20,6 +20,14 @@ namespace sprout {
|
|||
struct is_container<T const>
|
||||
: public sprout::weed::traits::is_container<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_container<T volatile>
|
||||
: public sprout::weed::traits::is_container<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_container<T const volatile>
|
||||
: public sprout::weed::traits::is_container<T>
|
||||
{};
|
||||
template<typename T, std::size_t N>
|
||||
struct is_container<sprout::array<T, N> >
|
||||
: public std::true_type
|
||||
|
|
|
@ -19,6 +19,14 @@ namespace sprout {
|
|||
struct is_string<T const>
|
||||
: public sprout::weed::traits::is_string<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_string<T volatile>
|
||||
: public sprout::weed::traits::is_string<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_string<T const volatile>
|
||||
: public sprout::weed::traits::is_string<T>
|
||||
{};
|
||||
template<typename T, std::size_t N, typename Traits>
|
||||
struct is_string<sprout::basic_string<T, N, Traits> >
|
||||
: public std::true_type
|
||||
|
|
|
@ -19,6 +19,14 @@ namespace sprout {
|
|||
struct is_tuple<T const>
|
||||
: public sprout::weed::traits::is_tuple<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_tuple<T volatile>
|
||||
: public sprout::weed::traits::is_tuple<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_tuple<T const volatile>
|
||||
: public sprout::weed::traits::is_tuple<T>
|
||||
{};
|
||||
template<typename... Types>
|
||||
struct is_tuple<sprout::tuples::tuple<Types...> >
|
||||
: public std::true_type
|
||||
|
|
|
@ -13,12 +13,24 @@ namespace sprout {
|
|||
//
|
||||
template<typename T>
|
||||
struct is_unused
|
||||
: public std::is_same<T, sprout::weed::unused>
|
||||
: public std::false_type
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_unused<T const>
|
||||
: public sprout::weed::traits::is_unused<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_unused<T volatile>
|
||||
: public sprout::weed::traits::is_unused<T>
|
||||
{};
|
||||
template<typename T>
|
||||
struct is_unused<T const volatile>
|
||||
: public sprout::weed::traits::is_unused<T>
|
||||
{};
|
||||
template<>
|
||||
struct is_unused<sprout::weed::unused>
|
||||
: public std::true_type
|
||||
{};
|
||||
} // namespace traits
|
||||
} // namespace weed
|
||||
} // namespace sprout
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue