Add locale overload for formatted_size (#3084) (#3087)

Co-authored-by: Gerbo Engels <gerbo.engels@ortec-finance.com>
This commit is contained in:
gerboengels 2022-09-07 23:15:12 +02:00 committed by GitHub
parent 1feb430faa
commit 3176e0fad7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 13 additions and 0 deletions

View File

@ -4270,6 +4270,18 @@ FMT_INLINE auto format_to(OutputIt out, const Locale& loc,
return vformat_to(out, loc, fmt, fmt::make_format_args(args...));
}
template <typename Locale, typename... T,
FMT_ENABLE_IF(detail::is_locale<Locale>::value)>
FMT_NODISCARD FMT_INLINE auto formatted_size(const Locale& loc,
format_string<T...> fmt,
T&&... args) -> size_t {
auto buf = detail::counting_buffer<>();
detail::vformat_to(buf, string_view(fmt),
format_args(fmt::make_format_args(args...)),
detail::locale_ref(loc));
return buf.count();
}
FMT_MODULE_EXPORT_END
FMT_END_NAMESPACE

View File

@ -2006,6 +2006,7 @@ TEST(format_test, output_iterators) {
TEST(format_test, formatted_size) {
EXPECT_EQ(2u, fmt::formatted_size("{}", 42));
EXPECT_EQ(2u, fmt::formatted_size(std::locale(), "{}", 42));
}
TEST(format_test, format_to_no_args) {