Skip to content

Commit 9150c0e

Browse files
committed
Add locale overload for formatted_size (fmtlib#3084)
1 parent 1feb430 commit 9150c0e

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

include/fmt/format.h

+12
Original file line numberDiff line numberDiff line change
@@ -4270,6 +4270,18 @@ FMT_INLINE auto format_to(OutputIt out, const Locale& loc,
42704270
return vformat_to(out, loc, fmt, fmt::make_format_args(args...));
42714271
}
42724272

4273+
template <typename Locale, typename... T,
4274+
FMT_ENABLE_IF(detail::is_locale<Locale>::value)>
4275+
FMT_NODISCARD FMT_INLINE auto formatted_size(const Locale& loc,
4276+
format_string<T...> fmt,
4277+
T&&... args) -> size_t {
4278+
auto buf = detail::counting_buffer<>();
4279+
detail::vformat_to(buf, string_view(fmt),
4280+
format_args(fmt::make_format_args(args...)),
4281+
detail::locale_ref(loc));
4282+
return buf.count();
4283+
}
4284+
42734285
FMT_MODULE_EXPORT_END
42744286
FMT_END_NAMESPACE
42754287

test/format-test.cc

+1
Original file line numberDiff line numberDiff line change
@@ -2006,6 +2006,7 @@ TEST(format_test, output_iterators) {
20062006

20072007
TEST(format_test, formatted_size) {
20082008
EXPECT_EQ(2u, fmt::formatted_size("{}", 42));
2009+
EXPECT_EQ(2u, fmt::formatted_size(std::locale(), "{}", 42));
20092010
}
20102011

20112012
TEST(format_test, format_to_no_args) {

0 commit comments

Comments
 (0)