The following code works as expected with 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;
}
with boost 1.59 the same code fails. The first gcc error message is:
error: no match for ‘operator<<’ (operand types are ‘boost::log::v2s_mt_posix::basic_record_ostream’ and ‘Foo’)
Neither the documentation nor the release notes document what needs to be changed.