提问人:greywolf82 提问时间:4/6/2022 更新时间:4/6/2022 访问量:105
Log4CXX 和 C++11 的 ostringstream 错误
ostringstream error with log4cxx and c++11
问:
我正在使用 log4cxx 0.10.0,但在编译软件时遇到问题。我创建了一个测试程序:
#include <sstream>
#include <log4cxx/logger.h>
using namespace log4cxx;
using namespace log4cxx::helpers;
LoggerPtr loggerMyMain(Logger::getLogger( "main"));
int main() {
std::ostringstream s;
s << "Test";
LOG4CXX_DEBUG(loggerMyMain, "aaa" << s);
return 0;
}
我收到来自 gcc 的错误:
/usr/include/log4cxx/helpers/messagebuffer.h:在实例化中 'std::basic_ostream& log4cxx::helpers::operator<<(log4cxx::helpers::CharMessageBuffer&, const V&) [with V = std::__cxx11::basic_ostringstream]': ../main.cpp:23:5:从这里需要 /usr/include/log4cxx/helpers/messagebuffer.h:190:44:错误:不匹配 对于“运算符<<”(操作数类型为“std::basic_ostream”和 '常量标准::__cxx11::basic_ostringstream') return ((std::basic_ostream&) os) << val; ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~
使用 C++03 标准,错误不再存在。我正在使用 GCC 8.3.1。
答: 暂无答案
评论
std::ostringstream
operator<<
std::ostream