C++11 具有函数(args)的可变模板。。。膨胀 今天,我的同事用函数调用的Valad模板向我展示了一个惊人的C++扩展技巧。简而言之,它看起来像: template <typename T, T... I> void print_sequence(std::integer_sequence<T, I...>) { std::initializer_list<bool>{ bool(std::cout << I << ' ')... }; }
上面的C++11 具有函数(args)的可变模板。。。膨胀 今天,我的同事用函数调用的Valad模板向我展示了一个惊人的C++扩展技巧。简而言之,它看起来像: template <typename T, T... I> void print_sequence(std::integer_sequence<T, I...>) { std::initializer_list<bool>{ bool(std::cout << I << ' ')... }; },c++11,c++14,variadic-templates,initializer-list,variadic,C++11,C++14,Variadic Templates,Initializer List,Variadic,上面的..与Args::value绑定的上下文是否与函数调用的上下文相同 template<typename... Args> inline void pass(Args&&...) {} template<typename... Args> inline void expand(Args&&... args) { pass( some_function(args)... ); } expand(42, "answe
..
与Args::value
绑定的上下文是否与函数调用的上下文相同
template<typename... Args> inline void pass(Args&&...) {}
template<typename... Args> inline void expand(Args&&... args) {
pass( some_function(args)... );
}
expand(42, "answer", true);
template<typename ...Args>
void foo () {
fun({Args::value...});
}