Iros
Loading...
Searching...
No Matches
maybe_inline_vtable.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/any/vtable/inline_vtable.h
"
4
#include "
di/any/vtable/out_of_line_vtable.h
"
5
#include "
di/meta/algorithm.h
"
6
7
namespace
di::any
{
8
template
<
size_t
threshold>
9
struct
MaybeInlineVTable
{
10
template
<
size_t
N>
11
constexpr
static
bool
store_out_of_line
= N > threshold;
12
13
template
<concepts::Interface Interface>
14
using
Invoke
=
15
meta::Invoke<meta::Conditional<store_out_of_line<meta::Size<Interface>
>,
OutOfLineVTable
,
InlineVTable
>,
16
Interface>;
17
};
18
}
algorithm.h
inline_vtable.h
di::any
Definition
any.h:18
di::meta::Invoke
Type< Defer< Fun::template Invoke, Args... > > Invoke
Definition
function.h:43
out_of_line_vtable.h
di::any::InlineVTable
Definition
inline_vtable.h:11
di::any::MaybeInlineVTable
Definition
maybe_inline_vtable.h:9
di::any::MaybeInlineVTable::Invoke
meta::Invoke< meta::Conditional< store_out_of_line< meta::Size< Interface > >, OutOfLineVTable, InlineVTable >, Interface > Invoke
Definition
maybe_inline_vtable.h:14
di::any::MaybeInlineVTable::store_out_of_line
static constexpr bool store_out_of_line
Definition
maybe_inline_vtable.h:11
di::any::OutOfLineVTable
Definition
out_of_line_vtable.h:11
libs
di
include
di
any
vtable
maybe_inline_vtable.h
Generated by
1.13.0