Кто-нибудь может увидеть проблему?
Не уверен (извините: нет опыта с наддувом), но ...
template< typename Arg, typename ...Args >
void ExpandArgs(boost::log::record_ostream& stream, Arg&& arg, Args&&... args)
{
ExpandArgs(stream, std::forward< Arg >(arg));
ExpandArgs(stream, std::forward<Args>(args)...); // SHOULD COMPILE, right?
//ExpandArgs(stream, "xpto", std::string("xpto"));
}
template< typename Arg >
void ExpandArgs(boost::log::record_ostream& stream, Arg&& arg)
{
stream << std::forward< Arg >(arg);
}
как насчет того, когда Args...
пусто, в поле "ДОЛЖНО Скомпилироваться, верно?" звоните
ExpandArgs(stream, std::forward<Args>(args)...); // ???
Звонок становится
ExpandArgs(stream);
но я не вижу функции ExpandArgs()
, которая получает только аргумент потока.
Полагаю, вы можете добавить кейс для терминала следующим образом
void ExpandArgs (boost::log::record_ostream &)
{ }
для решения этой проблемы.