Iros
 
Loading...
Searching...
No Matches
defer_construct.h
Go to the documentation of this file.
1#pragma once
2
4#include "di/meta/util.h"
5
6namespace di::util {
7template<concepts::Invocable Fun>
9public:
10 template<typename T>
12 constexpr explicit DeferConstruct(T&& value) : m_function(util::forward<T>(value)) {}
13
14 constexpr operator meta::InvokeResult<Fun>() && { return function::invoke(util::forward<Fun>(m_function)); }
15
16private:
17 Fun m_function;
18};
19
20template<typename T>
22}
23
24namespace di {
26}
Definition defer_construct.h:8
constexpr DeferConstruct(T &&value)
Definition defer_construct.h:12
Definition operations.h:11
Definition util.h:47
constexpr auto invoke
Definition invoke.h:100
decltype(function::detail::invoke_impl(util::declval< Ts >()...)) InvokeResult
Definition invoke.h:64
Definition vocab.h:96
DeferConstruct(T) -> DeferConstruct< T >
Definition zstring_parser.h:9