【发布时间】:2015-08-24 15:16:37
【问题描述】:
以下代码在 boost 1.57 中按预期工作:
#include <iostream>
#include <boost/log/trivial.hpp>
struct Foo
{
int d=1;
};
std::ostream& operator<<(std::ostream& out, const Foo& foo)
{
out << "Foo: " << foo.d;
return out;
}
int main()
{
BOOST_LOG_TRIVIAL(info) << Foo();
return EXIT_SUCCESS;
}
对于 boost 1.59,相同的代码会失败。第一条 gcc 错误信息是:
error: no match for ‘operator
文档和发行说明都没有记录需要更改的内容。
【问题讨论】:
-
直播版:melpon.org/wandbox/permlink/Xn1hDoe7Zg7cynRX 看起来
enable_if_formatting_ostream坏了。
标签: c++ logging boost boost-log