| @@ -1,65 +0,0 @@ | |||||
| #pragma once | |||||
| namespace cpphibernate { | |||||
| namespace mariadb { | |||||
| namespace __impl | |||||
| { | |||||
| /* make_modifier_tags_impl */ | |||||
| template<typename X, typename = void> | |||||
| struct make_modifier_tag_impl | |||||
| { | |||||
| template <typename ...T_args> | |||||
| static constexpr decltype(auto) apply(T_args&&... args) | |||||
| { static_assert(sizeof...(args) == -1, "Invalid parameters for make_modifier_tag(...)!"); } | |||||
| }; | |||||
| template<typename T_modifier> | |||||
| struct make_modifier_tag_impl< | |||||
| mp::list<T_modifier>, | |||||
| mp::enable_if_c< | |||||
| modifier::is_limit_modifier<mp::decay_t<T_modifier>>::value | |||||
| || modifier::is_offset<mp::decay_t<T_modifier>>::value>> | |||||
| { | |||||
| static constexpr decltype(auto) apply(T_modifier&&) | |||||
| { return T_modifier { }; } | |||||
| }; | |||||
| } | |||||
| constexpr decltype(auto) make_modifier_tag = mp::generic_predicate<__impl::make_modifier_tag_impl> { }; | |||||
| namespace __impl | |||||
| { | |||||
| /* make_modifier_tags_impl */ | |||||
| template<typename X, typename = void> | |||||
| struct make_modifier_tags_impl | |||||
| { | |||||
| template <typename ...T_args> | |||||
| static constexpr decltype(auto) apply(T_args&&... args) | |||||
| { static_assert(sizeof...(args) == -1, "Invalid parameters for make_modifier_tags(...)!"); } | |||||
| }; | |||||
| template<typename T_modifiers> | |||||
| struct make_modifier_tags_impl< | |||||
| mp::list<T_modifiers>, | |||||
| mp::enable_if_c< | |||||
| modifier::is_modifiers<mp::decay_t<T_modifiers>>::value>> | |||||
| { | |||||
| static constexpr decltype(auto) apply(T_modifiers&& modifiers) | |||||
| { | |||||
| return hana::transform( | |||||
| modifiers, | |||||
| make_modifier_tag); | |||||
| } | |||||
| }; | |||||
| } | |||||
| constexpr decltype(auto) make_modifier_tags = mp::generic_predicate<__impl::make_modifier_tags_impl> { }; | |||||
| } } | |||||