Iros
 
Loading...
Searching...
No Matches
into_parser_context.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace di::parser {
7namespace detail {
9 template<typename T>
11 constexpr auto operator()(T&& value) const -> concepts::ParserContext decltype(auto) {
13 return function::tag_invoke(*this, util::forward<T>(value));
14 } else {
15 return util::forward<T>(value);
16 }
17 }
18 };
19}
20
22}
23
24namespace di::concepts {
25template<typename T>
26concept IntoParserContext = requires(T&& value) { parser::into_parser_context(util::forward<T>(value)); };
27}
28
29namespace di::meta {
30template<concepts::IntoParserContext T>
32}
Definition into_parser_context.h:26
Definition parser_context.h:12
Definition tag_invoke.h:33
Definition any_storable.h:9
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
Definition merge_interfaces.h:6
decltype(parser::into_parser_context(util::declval< T >())) AsParserContext
Definition into_parser_context.h:31
Definition zstring_parser.h:10
Definition zstring_parser.h:9
constexpr auto into_parser_context
Definition into_parser_context.h:21
auto declval() -> meta::AddRValueReference< T >
Definition declval.h:8
Definition into_parser_context.h:8