c++ - why parameter pack expansion is so limited? -
i wondering, why parameter pack expansion limited in c++11 - oversight in c++11 standard? why not possible bar(args)...;? possible workaround improve did?
#include <iostream> int bar(int i) { std::cout << << ' '; homecoming 0; } template <typename t> void boo(t t) { bar(t); } template <typename t, typename... args> void boo(t t, args&&... args) { bar(t); boo(args...); } template <typename... args> void dummy(args&&... args) { } template <typename... args> void foo(args&&... args) { dummy(bar(args)...); std::cout << std::endl; int dummy1[sizeof...(args)] = { (bar(args), 0)... }; std::cout << std::endl; boo(args...); } int main() { foo(1, 3, 5); }
the reference mentions different contexts in parameter pack expansions allowed. so, more succinct way of doing is
auto = {bar(args)...}; this won't work if homecoming type of bar void.
c++ c++11
No comments:
Post a Comment