Skip to content

Commit db4bea8

Browse files
authored
Move named_arg to public API (#4687)
1 parent 88c5a91 commit db4bea8

File tree

3 files changed

+7
-6
lines changed

3 files changed

+7
-6
lines changed

include/fmt/args.h

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -113,8 +113,7 @@ FMT_EXPORT template <typename Context> class dynamic_format_arg_store {
113113
data_.emplace_back(arg);
114114
}
115115

116-
template <typename T>
117-
void emplace_arg(const detail::named_arg<T, char_type>& arg) {
116+
template <typename T> void emplace_arg(const named_arg<T, char_type>& arg) {
118117
if (named_info_.empty())
119118
data_.insert(data_.begin(), basic_format_arg<Context>(nullptr, 0));
120119
data_.emplace_back(detail::unwrap(arg.value));
@@ -183,8 +182,7 @@ FMT_EXPORT template <typename Context> class dynamic_format_arg_store {
183182
* formatting function. `std::reference_wrapper` is supported to avoid
184183
* copying of the argument. The name is always copied into the store.
185184
*/
186-
template <typename T>
187-
void push_back(const detail::named_arg<T, char_type>& arg) {
185+
template <typename T> void push_back(const named_arg<T, char_type>& arg) {
188186
const char_type* arg_name =
189187
dynamic_args_.push<std::basic_string<char_type>>(arg.name).c_str();
190188
if FMT_CONSTEXPR20 (need_copy<T>::value) {

include/fmt/base.h

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2342,6 +2342,9 @@ inline void vprint_mojibake(FILE*, string_view, const format_args&, bool) {}
23422342

23432343
// The main public API.
23442344

2345+
template <typename T, typename Char = char>
2346+
using named_arg = detail::named_arg<T, Char>;
2347+
23452348
template <typename Char>
23462349
FMT_CONSTEXPR void parse_context<Char>::do_check_arg_id(int arg_id) {
23472350
// Argument id is only checked at compile time during parsing because
@@ -2718,7 +2721,7 @@ using vargs =
27182721
* sufficiently new compilers. See `operator""_a()`.
27192722
*/
27202723
template <typename T>
2721-
inline auto arg(const char* name, const T& arg) -> detail::named_arg<T> {
2724+
inline auto arg(const char* name, const T& arg) -> named_arg<T> {
27222725
return {name, arg};
27232726
}
27242727

include/fmt/xchar.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ inline auto operator""_a(const wchar_t* s, size_t) -> detail::udl_arg<wchar_t> {
137137
#endif
138138

139139
template <typename T>
140-
auto arg(const wchar_t* name, const T& arg) -> detail::named_arg<T, wchar_t> {
140+
auto arg(const wchar_t* name, const T& arg) -> named_arg<T, wchar_t> {
141141
return {name, arg};
142142
}
143143

0 commit comments

Comments
 (0)