当前位置: 首页 > 知识库问答 >
问题:

嵌套的结构化绑定可能吗?

卫彭亮
2023-03-14

假设我有一个类型为

std::map<std::string, std::tuple<int, float>> data;

是否可以像这样以嵌套的方式访问元素类型(即在Range for循环中使用时)

for (auto [str, [my_int, my_float]] : data) /* do something */

共有2个答案

姚星河
2023-03-14

不,这是不可能的;但这是:

for (auto&& [key, value] : data) {
  auto&& [my_int, my_float] = value;
}

这至少很接近。

郜彦
2023-03-14

不,这是不可能的。

我清楚地记得在某个地方读到过,嵌套的结构化绑定不允许用于C 17,但他们正在考虑在未来的标准中允许它。但找不到来源。

 类似资料:
  • 问题内容: 您如何初始化以下结构? 我试过了: 没用: 我试过了: 没用: 问题答案: 您是一个具有匿名结构类型的字段。因此,您必须重复类型定义: 但在大多数情况下,最好将其定义为rob74建议的单独类型。

  • 问题内容: 我不知道如何初始化嵌套结构。在此处找到示例:http: //play.golang.org/p/NL6VXdHrjh 问题答案: 好吧,有什么特定的原因不使Proxy成为自己的结构? 无论如何,您有2个选择: 正确的方法是,只需将proxy移至其自己的结构,例如: 不太正确和丑陋的方法,但仍然有效:

  • 问题内容: 我有一个json作为 我想将我的结构编组到json之上并创建如下结构- 我在初始化上述结构时遇到麻烦。我不确定如何以以下方式初始化匿名结构: 我通过为页面信息创建一个单独的结构并将其与父结构附加在一起来解决此问题。但是,必须有某种方法来执行 匿名 嵌套结构的初始化,就像我对上面的 Fields (字符串切片)所做的一样。谁能将我重定向到一些指南来做到这一点? 问题答案: 这可行,但是很

  • 简短版本: 我希望能够将结构转换为元组。至少是那种类型。在下面的代码中,convertToTuple函数不起作用,因为可变参数不能用于结构化绑定(据我所知)。关键是:自动 基本上,我需要的是一种将自定义结构的类型转换为元组的方法,元组包含结构中的所有类型。例如: 具体问题: 我想创建一个模板函数,它将一个类型或一个类型列表作为模板参数,并生成一个纹理列表,每个纹理包含一个项目。另一个函数可以对纹理

  • 问题内容: 我怎样才能做到这一点: … 给出的编译结果为:“结构文字中的未知B字段’MemberA’” 当提供像这样的文字结构成员值时,如何初始化MemberA(从“父”结构)? 问题答案: 初始化时,匿名结构仅在其类型名称下(在您的情况下)是已知的。与该结构关联的成员和函数仅在实例存在之后才导出到外部。 您必须提供一个有效的实例来初始化: 编译错误 结构文字中的未知B字段’MemberA’ 确切

  • 本文向大家介绍C++ 嵌套类/结构,包括了C++ 嵌套类/结构的使用技巧和注意事项,需要的朋友参考一下 示例 甲class或struct还可以包含另一个class/struct内部本身的定义,这被称为“嵌套类”; 在这种情况下,包含类称为“封闭类”。嵌套类定义被认为是封闭类的成员,但在其他方面则是单独的。 从封闭类的外部,可以使用范围运算符访问嵌套类。但是,在封闭类的内部,可以使用没有限定符的嵌套