а нет, там вызов метода
в итоге, получился my_apply:
#include <iostream>
#include <sstream>
#include <initializer_list>
#include <utility>
template<typename T>
void blackhole(std::initializer_list<T>&&) {}
template<typename F, typename ... Args>
void my_apply(F&& f, Args&& ... args) {
blackhole({ (f(std::forward<Args>(args)), 0) ... });
}
int main()
{
{
my_apply([cnt = 0](auto&& s) mutable {
if (cnt)
std::cout << ", ";
std::cout << std::move(s);
++cnt;
}, std::string("hello"), 10, 30.);
}
}