di 0.1.0
Loading...
Searching...
No Matches
variant_size.h
Go to the documentation of this file.
1#pragma once
2
4#include "di/meta/core.h"
5#include "di/types/prelude.h"
6
7namespace di::vocab {
8namespace detail {
9 struct VariantSizeFunction {
10 template<typename T>
11 requires(concepts::TagInvocableTo<VariantSizeFunction, size_t, InPlaceType<T>>)
12 constexpr auto operator()(InPlaceType<T>) const -> size_t {
14 }
15 };
16}
17
18constexpr inline auto variant_size = detail::VariantSizeFunction {};
19}
20
21namespace di::meta {
22template<typename T>
25}
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
Definition merge_interfaces.h:6
RemoveCV< RemoveReference< T > > RemoveCVRef
Definition core.h:74
constexpr auto VariantSize
Definition variant_size.h:24
Definition lazy.h:165
constexpr auto variant_size
Definition variant_size.h:18
constexpr auto in_place_type
Definition in_place_type.h:12