Add println for compiled format string
Signed-off-by: Vladislav Shchapov <vladislav@shchapov.ru>
This commit is contained in:
parent
4bbe317bef
commit
fedf3ca24e
@ -585,12 +585,29 @@ void print(std::FILE* f, const S& format_str, const Args&... args) {
|
||||
detail::print(f, {buffer.data(), buffer.size()});
|
||||
}
|
||||
|
||||
template <typename S, typename... Args,
|
||||
FMT_ENABLE_IF(detail::is_compiled_string<S>::value)>
|
||||
void println(std::FILE* f, const S& format_str, const Args&... args) {
|
||||
memory_buffer buffer;
|
||||
using Char = typename S::char_type;
|
||||
Char suffix[] = {Char('\n'), 0};
|
||||
fmt::format_to(std::back_inserter(buffer), format_str, args...);
|
||||
buffer.append(suffix, suffix + 1);
|
||||
detail::print(f, {buffer.data(), buffer.size()});
|
||||
}
|
||||
|
||||
template <typename S, typename... Args,
|
||||
FMT_ENABLE_IF(detail::is_compiled_string<S>::value)>
|
||||
void print(const S& format_str, const Args&... args) {
|
||||
print(stdout, format_str, args...);
|
||||
}
|
||||
|
||||
template <typename S, typename... Args,
|
||||
FMT_ENABLE_IF(detail::is_compiled_string<S>::value)>
|
||||
void println(const S& format_str, const Args&... args) {
|
||||
println(stdout, format_str, args...);
|
||||
}
|
||||
|
||||
#if FMT_USE_NONTYPE_TEMPLATE_ARGS
|
||||
inline namespace literals {
|
||||
template <detail_exported::fixed_string Str> constexpr auto operator""_cf() {
|
||||
|
||||
@ -284,8 +284,12 @@ TEST(compile_test, to_string_and_formatter) {
|
||||
TEST(compile_test, print) {
|
||||
EXPECT_WRITE(stdout, fmt::print(FMT_COMPILE("Don't {}!"), "panic"),
|
||||
"Don't panic!");
|
||||
EXPECT_WRITE(stdout, fmt::print(FMT_COMPILE("Don't {}!\n"), "panic"),
|
||||
"Don't panic!\n");
|
||||
EXPECT_WRITE(stderr, fmt::print(stderr, FMT_COMPILE("Don't {}!"), "panic"),
|
||||
"Don't panic!");
|
||||
EXPECT_WRITE(stderr, fmt::print(stderr, FMT_COMPILE("Don't {}!\n"), "panic"),
|
||||
"Don't panic!\n");
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user