diff options
Diffstat (limited to 'include/CommonAPI/Variant.hpp')
-rw-r--r-- | include/CommonAPI/Variant.hpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/CommonAPI/Variant.hpp b/include/CommonAPI/Variant.hpp index d7b1088..7af1b81 100644 --- a/include/CommonAPI/Variant.hpp +++ b/include/CommonAPI/Variant.hpp @@ -516,6 +516,27 @@ struct TypeSelector<_Type> { }; template<typename _Type, typename... _Types> +struct TypeSelector<typename _Type::Literal, _Type, _Types...> { + typedef _Type type; +}; + +template<typename _Type, typename... _Types> +struct TypeSelector<typename _Type::Literal &, _Type, _Types...> { + typedef _Type type; +}; + + +template<typename _Type, typename... _Types> +struct TypeSelector<typename _Type::Literal, const _Type&, _Types...> { + typedef _Type type; +}; + +template<typename _Type, typename... _Types> +struct TypeSelector<const typename _Type::Literal &, _Type, _Types...> { + typedef _Type type; +}; + +template<typename _Type, typename... _Types> struct TypeSelector<_Type, _Type, _Types...> { typedef _Type type; }; |