C++ 遍历可变模板参数 iterate variadic templat…
2018-06-17 22:57:14来源:未知 阅读 ()
1 template<size_t I = 0, typename FuncT, typename ...Tp> 2 inline typename std::enable_if_t<I == sizeof ...(Tp)> for_each(std::tuple<Tp ...>&, FuncT) 3 { 4 } 5 6 template<size_t I = 0, typename FuncT, typename ...Tp> 7 inline typename std::enable_if_t<I < sizeof ...(Tp)> for_each(std::tuple<Tp ...>& t, FuncT f) 8 { 9 f(std::get<I>(t)); 10 for_each<I + 1, FuncT, Tp...>(t, f); 11 } 12 13 template<typename ...Args> 14 auto print(Args ...args) 15 { 16 auto a = std::forward_as_tuple(args...); 17 for_each(a, [](auto x) 18 { 19 std::cout << typeid(x).name() << ":" << x << std::endl; 20 }); 21 } 22 23 int main() 24 { 25 print(10, 'c', "bbb", string("123")); 26 }
结果如下:
int:10 char:c char const *:bbb class std::basic_string<char, struct std::char_traits<char>, class std::allocator<char> >:123
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- C++ 转换函数搭配友元函数 2020-06-10
- C++ 自动转换和强制类型转换(用户自定义类类型) 2020-06-10
- C++ rand函数 2020-06-10
- C++ 友元函数 2020-06-10
- C++ 运算符重载 2020-06-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash