Iros
 
Loading...
Searching...
No Matches
formatter.h
Go to the documentation of this file.
1#pragma once
2
6#include "di/meta/vocab.h"
7#include "di/types/prelude.h"
8
9namespace di::format {
11 template<typename T, concepts::Encoding Enc>
14 constexpr auto operator()(InPlaceType<T>, FormatParseContext<Enc>& context, bool debug = false) const {
16 bool>) {
17 return function::tag_invoke(*this, in_place_type<T>, context, debug);
18 } else {
19 return function::tag_invoke(*this, in_place_type<T>, context);
20 }
21 }
22};
23
25
26template<typename T, concepts::Encoding Enc>
27constexpr auto formatter(FormatParseContext<Enc>& parse_context, bool debug = false)
28requires(requires { formatter_in_place(in_place_type<meta::RemoveCVRef<T>>, parse_context); })
29{
30 return formatter_in_place(in_place_type<meta::RemoveCVRef<T>>, parse_context, debug);
31}
32}
33
34namespace di {
36}
Definition format_parse_context.h:14
Definition tag_invoke.h:33
Definition bounded_format_context.h:7
constexpr auto formatter(FormatParseContext< Enc > &parse_context, bool debug=false)
Definition formatter.h:27
constexpr auto formatter_in_place
Definition formatter.h:24
constexpr tag_invoke_detail::TagInvokeFn tag_invoke
Definition tag_invoke.h:22
RemoveCV< RemoveReference< T > > RemoveCVRef
Definition core.h:74
Definition zstring_parser.h:9
constexpr auto in_place_type
Definition in_place_type.h:12
Definition formatter.h:10
Definition in_place_type.h:5