Iros
Loading...
Searching...
No Matches
any_storable.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/any/concepts/any_storage.h
"
4
#include "
di/types/prelude.h
"
5
#include "
di/util/create.h
"
6
#include "
di/util/defer_construct.h
"
7
#include "
di/util/unreachable.h
"
8
9
namespace
di::concepts
{
10
template
<
typename
T,
typename
Storage>
11
concept
AnyStorable
=
AnyStorage<Storage>
&&
requires
(Storage* self) {
12
Storage::init(self,
in_place_type<T>
,
util::DeferConstruct
([] -> T {
13
util::unreachable
();
14
}));
15
};
16
}
any_storage.h
di::util::DeferConstruct
Definition
defer_construct.h:8
di::concepts::AnyStorable
Definition
any_storable.h:11
di::concepts::AnyStorage
Definition
any_storage.h:11
create.h
defer_construct.h
prelude.h
di::concepts
Definition
any_storable.h:9
di::util::unreachable
void unreachable()
Definition
unreachable.h:4
di::in_place_type
constexpr auto in_place_type
Definition
in_place_type.h:12
unreachable.h
libs
di
include
di
any
concepts
any_storable.h
Generated by
1.13.0