Boost C++ Libraries: Ticket #12998: Can't forward single-argument constructors to sinks https://svn.boost.org/trac10/ticket/12998 <p> CasparCG has code like this: </p> <p> <code></code>` </p> <blockquote> <p> class sink_backend : public boost::log::sinks::basic_formatted_sink_backend&lt;char&gt; { </p> <blockquote> <p> std::function&lt;void(std::string line)&gt; formatted_line_sink_; </p> </blockquote> <p> public: </p> <blockquote> <p> sink_backend(std::function&lt;void(std::string line)&gt; formatted_line_sink) </p> <blockquote> <p> : formatted_line_sink_(std::move(formatted_line_sink)) </p> </blockquote> <p> { } </p> </blockquote> </blockquote> <blockquote> <blockquote> <p> void consume(const boost::log::record_view&amp; rec, const std::string&amp; formatted_message) { </p> <blockquote> <p> try { </p> <blockquote> <p> formatted_line_sink_(formatted_message); </p> </blockquote> <p> } catch (...) { </p> <blockquote> <p> std::cerr &lt;&lt; "[sink_backend] Error while consuming formatted message: " &lt;&lt; formatted_message &lt;&lt; std::endl &lt;&lt; std::endl; </p> </blockquote> <p> } </p> </blockquote> <p> } </p> </blockquote> <p> }; </p> </blockquote> <p> […] </p> <blockquote> <p> auto sink = boost::make_shared&lt;sink_type&gt;(std::move(formatted_line_sink)); </p> </blockquote> <p> <code></code>` </p> <p> This fails with a long spew of template errors, evidently because for single-argument constructors, only variants with named parameters are considered (sync_frontend.hpp, BOOST_LOG_SINK_CTOR_FORWARD_INTERNAL_1). This is a regression from 1.59.0. </p> <p> Adding a dummy int parameter and setting it to 0 makes the code compile. </p> en-us Boost C++ Libraries /htdocs/site/boost.png https://svn.boost.org/trac10/ticket/12998 Trac 1.4.3