di
0.1.0
Loading...
Searching...
No Matches
construct.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
di/function/curry_back.h
"
4
#include "
di/meta/operations.h
"
5
#include "
di/util/forward.h
"
6
7
namespace
di::util
{
8
template
<
typename
T>
9
struct
Construct
{
10
template
<
typename
... Args>
11
requires
(
concepts::ConstructibleFrom
<T, Args...>)
12
constexpr
static
auto
operator
()(Args&&... args) -> T {
13
return
T(di::forward<Args>(args)...);
14
}
15
};
16
17
template
<
typename
T>
18
constexpr
inline
auto
construct
=
di::curry_back
(
Construct<T>
{});
19
}
20
21
namespace
di
{
22
using
util::construct
;
23
}
di::concepts::ConstructibleFrom
Definition
operations.h:11
curry_back.h
forward.h
di::util
Definition
vocab.h:96
di::util::construct
constexpr auto construct
Definition
construct.h:18
di
Definition
any_storable.h:9
di::curry_back
constexpr auto curry_back
Definition
curry_back.h:141
operations.h
di::util::Construct
Definition
construct.h:9
di
util
construct.h
Generated by
1.13.2