Iros
 
Loading...
Searching...
No Matches
get_in_place.h
Go to the documentation of this file.
1#pragma once
2
4#include "di/meta/constexpr.h"
6#include "di/types/size_t.h"
7
8namespace di::util {
10 template<typename T, types::size_t index>
11 constexpr auto operator()(Constexpr<index> place_holder, T&& tuple) const
13 return function::tag_invoke(*this, place_holder, util::forward<T>(tuple));
14 }
15
16 template<typename T, typename Type>
17 constexpr auto operator()(types::InPlaceType<Type> place_holder, T&& tuple) const
19 return function::tag_invoke(*this, place_holder, util::forward<T>(tuple));
20 }
21};
22
23constexpr inline auto get_in_place = GetInPlaceFunction {};
24}
25
26namespace di {
28}
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
Definition vocab.h:96
constexpr auto get_in_place
Definition get_in_place.h:23
Definition zstring_parser.h:9
A wrapper for a constexpr value.
Definition core.h:77
Definition in_place_type.h:5
Definition get_in_place.h:9
constexpr auto operator()(types::InPlaceType< Type > place_holder, T &&tuple) const -> meta::TagInvokeResult< GetInPlaceFunction, types::InPlaceType< Type >, T >
Definition get_in_place.h:17
constexpr auto operator()(Constexpr< index > place_holder, T &&tuple) const -> meta::TagInvokeResult< GetInPlaceFunction, Constexpr< index >, T >
Definition get_in_place.h:11