Iros
 
Loading...
Searching...
No Matches
variant_or_empty.h
Go to the documentation of this file.
1#pragma once
2
3#include "di/meta/algorithm.h"
4#include "di/meta/core.h"
6
7namespace di::meta {
8namespace detail {
9 struct EmptyVariant {
10 EmptyVariant() = delete;
11 };
12
13 template<typename List>
15
16 template<typename... Types>
17 struct VariantOrEmptyHelper<List<Types...>> : TypeConstant<vocab::Variant<Types...>> {};
18
19 template<>
20 struct VariantOrEmptyHelper<List<>> : TypeConstant<EmptyVariant> {};
21}
22
23template<typename... Types>
25}
Definition const_sentinel.h:8
Definition merge_interfaces.h:6
T::Type Type
Definition core.h:26
Fold< Lst, List<>, detail::PushBackIfUnique > Unique
Definition algorithm.h:203
detail::VariantOrEmptyHelper< meta::Unique< meta::List< Types... > > >::Type VariantOrEmpty
Definition variant_or_empty.h:24
Definition core.h:5
Definition core.h:18
Definition variant_or_empty.h:14