首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >std::忽略结构化绑定?

std::忽略结构化绑定?
EN

Stack Overflow用户
提问于 2016-11-18 17:08:17
回答 1查看 21K关注 0票数 102

前奏:

代码语言:javascript
复制
std::tuple<int, int, int> f();
std::tuple<int, int, float, int> g();

C++1z将引入结构化绑定的语法,这将使编写代码而不是

代码语言:javascript
复制
int a, b, c;
std::tie(a, b, c) = f();

就像这样

代码语言:javascript
复制
auto [a, b, c] = f();

但是,std::tie还允许指定std::ignore以忽略某些组件,例如:

代码语言:javascript
复制
std::tie(a, b, std::ignore, c) = g();

使用新的结构化绑定语法可以做类似的事情吗?它是如何工作的?

EN

回答 1

Stack Overflow用户

发布于 2021-03-10 03:03:34

我通常使用_,它在C++中是一个有效的标识符,但看起来与Kotlin的下划线操作符相同,后者丢弃了lambda参数。你最终会得到一个很好的代码,就像这样

代码语言:javascript
复制
map([&](auto it) {
    auto [_, deviceServiceXAddr] = it;
    return deviceServiceXAddr;
});
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40673080

复制
相关文章

相似问题

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