14 #include <util/pragma_push.def>
16 #pragma warning(disable:4668)
18 #pragma warning(disable : 5039)
25 #include <util/pragma_pop.def>
43 : always_flush(_always_flush), is_a_tty(false), use_SGR(false)
46 HANDLE out_handle=GetStdHandle(STD_OUTPUT_HANDLE);
49 if(GetConsoleMode(out_handle, &consoleMode))
53 #ifdef ENABLE_VIRTUAL_TERMINAL_PROCESSING
54 consoleMode |= ENABLE_VIRTUAL_TERMINAL_PROCESSING;
55 if(SetConsoleMode(out_handle, consoleMode))
78 const std::string &message)
87 GetStdHandle((level>1)?STD_OUTPUT_HANDLE:STD_ERROR_HANDLE);
93 if(GetConsoleMode(out_handle, &consoleMode))
96 std::wstring wide_message=
widen(message);
101 out_handle, wide_message.c_str(),
102 (DWORD)wide_message.size(), &number_written, NULL);
104 WriteConsoleW(out_handle, L
"\r\n", 2, &number_written, NULL);
112 std::cout << message <<
'\n';
115 std::cerr << message <<
'\n';
123 std::cout << message <<
'\n';
126 std::cerr << message <<
'\n';
138 std::cout << std::flush;
141 std::cerr << std::flush;