Предположим, у меня есть функция с printf
-как (используемой для регистрации), используя совершенную переадресацию:подталкивание :: формат с аргументами шаблона
template<typename... Arguments>
void awesome_printf(std::string const& fmt, Arguments&&... args)
{
boost::format f(fmt);
f % /* How to specify `args` here? */;
BlackBoxLogFunction(boost::str(f).c_str());
}
(я не компилировать это, но моя настоящая функция следует этой рекомендации)
Как я могу «развернуть» переменный аргумент в переменную boost :: format f
?
Я не знаю, будет ли это работать, но вы пробовали, например, '' Арг ...? –
@JoachimPileborg Я пробовал это: http://coliru.stacked-crooked.com/a/9e651d5f7532cc67, он не работает, к сожалению (если я не ошибаюсь). –
Вот как вы расширяете вариационные аргументы шаблона. К сожалению, формат Boost использует перегруженный оператор '%' для разделения аргументов, который не будет работать с расширенными пакетами аргументов. –