前提: 在玩了各种各样的模板之后,我意识到,实现任何超出微不足道的元编程任务的东西都将变得非常麻烦。 特别是,我发现自己希望有一种方法来执行generics操作,比如迭代 , 分割 , 循环等 std::for_each方式,等等。 在看了C ++和Beyond 2012 的Andrei Alexandrescu关于static if从C语言中借用一个构造)的愿望之后,我感觉到某种static for也会变得方便 – 我感觉更多这些static结构可以带来好处。 所以我开始想知道是否有一种方法来实现类似于 variadic模板函数( 伪代码 )的参数包: template<typename… Ts> void my_function(Ts&&… args) { static for (int i = 0; i < sizeof…(args); i++) // PSEUDO-CODE! { foo(nth_value_of<i>(args)); } } 在编译时会翻译成这样的内容: template<typename… Ts> void my_function(Ts&&… args) { foo(nth_value_of<0>(args)); foo(nth_value_of<1>(args)); // … foo(nth_value_of<sizeof…(args) […]