Iros
 
Loading...
Searching...
No Matches
get_value.h
Go to the documentation of this file.
1#pragma once
2
4#include "di/util/declval.h"
5#include "di/util/forward.h"
6
7namespace di::vocab {
9 template<typename T>
10 constexpr static auto operator()(T&& value) -> di::meta::TagInvokeResult<GetValueFunction, T> {
11 return di::function::tag_invoke(GetValueFunction {}, di::util::forward<T>(value));
12 }
13};
14
15constexpr inline auto get_value = GetValueFunction {};
16
17template<typename Storage>
19}
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
decltype(di::function::tag_invoke(util::declval< Tag >(), util::declval< Args >()...)) TagInvokeResult
Definition tag_invoke.h:40
auto declval() -> meta::AddRValueReference< T >
Definition declval.h:8
Definition lazy.h:165
decltype(get_value(util::declval< Storage >())) OptionalGetValue
Definition get_value.h:18
constexpr auto get_value
Definition get_value.h:15
Definition get_value.h:8
static constexpr auto operator()(T &&value) -> di::meta::TagInvokeResult< GetValueFunction, T >
Definition get_value.h:10