首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >这种循环遍历各种模板的C++语法是什么?

这种循环遍历各种模板的C++语法是什么?
EN

Stack Overflow用户
提问于 2022-06-09 18:09:41
回答 1查看 105关注 0票数 0

在阅读序列时,我看到了这个语法。

这个双括号是做什么的?看起来像是某种形式的循环。它只适用于非类型的模板参数吗?它必须与参数的顺序相同吗?我们能向后迭代吗?跳过一个号码?

代码语言:javascript
复制
// pretty-print a tuple
template<class Ch, class Tr, class Tuple, std::size_t... Is>
void print_tuple_impl(std::basic_ostream<Ch,Tr>& os,
                      const Tuple& t,
                      std::index_sequence<Is...>)
{
    ((os << (Is == 0? "" : ", ") << std::get<Is>(t)), ...);
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-09 18:23:16

有关于这方面的文档:折叠表达

简而言之,在本例中,...意味着对包中的所有参数重复指定的运算符。因此,在本例中,它将被解压缩为由逗号分隔的表达式序列,用于Is的每个后续元素,如下所示:

代码语言:javascript
复制
(os << "" << std::get<0>(t)), (os << ", " << std::get<1>(t)), (os << ", " << std::get<2>(t)), (os << ", " << std::get<3>(t))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72564805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档