Здравствуйте, koenjihyakkei, Вы писали:
K>Но все же интересно, средствами метапрограммирования можно ли такое сделать.
Возможен вариант с таким костылём:
http://coliru.stacked-crooked.com/a/afde491174748633
#include <utility>
#include <iostream>
void pr(const char* c, int n)
{
std::cout << n << ": " << c << std::endl;
}
template <class ... Args, std::size_t... N>
void fn(Args&& ... args, std::index_sequence<N...>)
{
(pr(std::forward<Args>(args), N), ...);
}
template <class ... Args>
void fn(Args&& ... args)
{
fn<Args...>(std::forward<Args>(args)...,
std::make_index_sequence<sizeof... (Args)>{});
}
int main()
{
fn("str0", "str1", "str2");
return 0;
}