From 86b031cab968a7656ee06abf2fbbff51b1bc0080 Mon Sep 17 00:00:00 2001 From: Marcel Raad Date: Tue, 21 Dec 2021 13:17:26 +0100 Subject: [PATCH] Fix error_code's operator<< for arbitrary basic_ostream specializations This fixes a regression from commit https://github.com/boostorg/system/commit/a9b64a888a24400cc2af9910a6ff88c3c4fd3210. Calling `operator<<` with `std::string` only works for `std::ostream`. Use `c_str()` to restore the previous behavior of using `const char*`, which works for any `basic_ostream` specialization. --- include/boost/system/detail/error_code.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/include/boost/system/detail/error_code.hpp b/include/boost/system/detail/error_code.hpp index 1f0ac5d..eaf4324 100644 --- a/include/boost/system/detail/error_code.hpp +++ b/include/boost/system/detail/error_code.hpp @@ -604,7 +604,7 @@ public: inline friend std::basic_ostream& operator<< (std::basic_ostream& os, error_code const & ec) { - return os << ec.to_string(); + return os << ec.to_string().c_str(); } std::string what() const