结构化绑定:遍历元组的双端面
Structured Bindings : loop over deque of tuple
我刚刚安装了Visual Studio的最新版本,我有这个元组:
using InstancesOfOneObject = std::tuple<DrawCmd, std::deque<bool>, std::deque<glm::mat4>>;
std::deque<InstancesOfOneObject> mInstancesByObject;
之后,我想用一个 for 远程循环遍历这个双端
:for (const auto &[cmd, validites, matrices] : mInstancesByObject)
但是,这不起作用,但是:
for (const auto &instance : mInstancesByObject) {
const auto &[cmd, validities, matrices] = instance;
效果很好。
正常吗?有没有办法使用接近第一个想法的东西?
两者之间的唯一区别:
for (const auto &[cmd, validites, matrices] : mInstancesByObject) { ... }
和:
for (const auto &instance : mInstancesByObject) {
const auto &[cmd, validities, matrices] = instance;
...
}
是后者允许您仍然访问instance
而在前者中它是一个未命名的对象。它们在其他方面是等效的。如果前者无法编译,则应向该编译器提交错误。
相关文章:
- 结构化绑定初始值设定项表单 { 赋值表达式 } 对于 clang 上的数组类型失败
- Python C 绑定 - 获取从 python 到 C++ 的数组
- 为什么结构化绑定不支持可变数组?
- 您自己的类型的结构化绑定,不是结构或元组(通过公共成员函数)
- 结构化绑定:遍历元组的双端面
- 结构化绑定和引用元组
- C++映射中搜索元组错误:无法将"int"左值绑定到"int&&"
- 运算符>>在具有 std::ignore 的绑定元组上
- | 9 |错误:非静态数据成员'matrix :: row'| 9 |错误:数组绑定不是在']']'令牌|之前的整数常数
- 类模板的内部类的类似元组的结构化绑定
- C++11绑定std::函数与存储元组和解包
- 如何绑定两个元组
- 如何将boost::元组::元组公开到Java绑定
- 将数组绑定双倍到双*&
- boost元组导致boost绑定/boost函数出现问题
- 使用静态常量+常量作为数组绑定
- 结构化绑定实现地下层和std::元组
- 将数组绑定到sql参数
- 使用类属性作为数组绑定
- 枚举到数组绑定