1 #pragma once // Source encoding: UTF-8 with BOM (π is a lowercase Greek "pi"). 14 CPPX_USE_STD( cerr, cout, clog, endl, ostream, string_view );
21 fprintf( stderr,
"%.*s\n",
int( s.length() ), s.data() );
24 return !!ferror( stderr );
33 if(
is_in( { &cerr, &clog }, &stream ) )
41 const std::ios::iostate original_x_flags = stream.exceptions();
43 const Truth ok = not stream.fail();
44 if( original_x_flags ) { stream.exceptions( original_x_flags ); }
49 inline auto put_line(
const string_view s ) noexcept
55 const string_view bullet,
63 ostream& stream = clog
70 ostream& stream = cerr
constexpr auto & right_arrow_str
auto put_line(ostream &stream, const string_view s) noexcept -> Truth
A drop-in replacement for bool without implicit conversion from/to types other than bool.
auto put_block_to(ostream &stream, const string_view bullet, const string_view s) -> Truth
auto put_error_block(const string_view s, ostream &stream=cerr) -> Truth
auto put_stderr_line(const string_view s) noexcept -> Truth
auto is_in(const basic_string_view< Char > &sv, const Char ch) noexcept -> Truth
CPPX_USE_STD(cerr, cout, clog, endl, ostream, string_view)
auto is_empty(const Collection &c) -> Truth
auto put_info_block(const string_view s, ostream &stream=clog) -> Truth
auto monospaced_bullet_block(const string_view &s, const string_view &bullet=best_effort::bullet_str, const int indent_size=4) -> string
Macros for generating more concise and clear using statements, primarily $use_cppx and $use_std,...