provide print overload for compiled format
This commit is contained in:
parent
45a1990bab
commit
30de36aefa
@ -128,12 +128,22 @@ void vprint(std::basic_ostream<Char>& os, basic_string_view<Char> format_str,
|
|||||||
fmt::print(cerr, "Don't {}!", "panic");
|
fmt::print(cerr, "Don't {}!", "panic");
|
||||||
\endrst
|
\endrst
|
||||||
*/
|
*/
|
||||||
template <typename S, typename... Args,
|
template <typename S, typename... Args, typename Char = char_t<S>,
|
||||||
typename Char = enable_if_t<internal::is_string<S>::value, char_t<S>>>
|
FMT_ENABLE_IF(internal::is_string<S>::value)>
|
||||||
void print(std::basic_ostream<Char>& os, const S& format_str, Args&&... args) {
|
void print(std::basic_ostream<Char>& os, const S& format_str, Args&&... args) {
|
||||||
vprint(os, to_string_view(format_str),
|
vprint(os, to_string_view(format_str),
|
||||||
{internal::make_args_checked<Args...>(format_str, args...)});
|
{internal::make_args_checked<Args...>(format_str, args...)});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// fallback print overload for types that define char_t but are not strings
|
||||||
|
// such as compiled format
|
||||||
|
template <typename S, typename... Args, typename Char = char_t<S>,
|
||||||
|
FMT_ENABLE_IF(!internal::is_string<S>::value)>
|
||||||
|
void print(std::basic_ostream<Char>& os, const S& format, Args&&... args) {
|
||||||
|
basic_memory_buffer<Char> buffer;
|
||||||
|
format_to(std::back_inserter(buffer), format, args...);
|
||||||
|
internal::write(os, buffer);
|
||||||
|
}
|
||||||
FMT_END_NAMESPACE
|
FMT_END_NAMESPACE
|
||||||
|
|
||||||
#endif // FMT_OSTREAM_H_
|
#endif // FMT_OSTREAM_H_
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user