问题标签 [structured-bindings]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
58 浏览

c++ - 为什么我无法访问矢量?

我目前正在尝试访问这样定义的向量:

我收到的错误消息是buffer我目前正在做的范围界定无效?但为什么它无效?我看不出它应该是什么原因?

我在 for 循环中试图在 的内部和外部向量之间进行迭代buffer,但是由于我无法确定它的范围,所以我无法访问?我如何访问它?

0 投票
1 回答
88 浏览

c++ - 具有相同名称的结构化绑定

我正在编写一些 OpenGL 应用程序,无论如何。在一个地方,我决定使用结构化绑定,因为它可以节省我大量的打字时间。这里是:

现在的问题是,第一次绑定(使用normal_points[row][col])它工作得很好。但是当我这样做时normal_points[row+1][col],我得到的数字是相同的。但在normal_points二维数组中它们不是。证明:

在此处输入图像描述

在此处输入图像描述

因此,在Watch 1选项卡中,您可以看到数组中的这些值不同,但是当我从第一个断点跳到第二个断点时,xu, xvetc. 的值没有改变。我该如何解决?是因为我用了相同的名字吗?如果是这样,我不能使用相同的名称吗?(因为我有第二个循环,就像这个循环一样,它确实可以节省大量打字并提供可读性)

0 投票
1 回答
659 浏览

c++ - Why does auto seemingly deduce a reference when using structured bindings?

Consider the following code that uses structured bindings from C++17:

Since I used auto, I would expect the code to print 0 0 as y should be a copy. However, it prints 0 1. Why? I thought that a bare auto never deduces a reference.

0 投票
1 回答
142 浏览

c++ - 允许模板类的结构化绑定

所以我有一个小课,我想在其中添加结构化绑定支持。但是,我无法弄清楚如何专门化std::tuple_elementstd::tuple_size使用我的模板类。这是我的尝试:

(为了清楚起见,我省略了一些实现特定的东西,完整的片段可以在这里找到)

但是,这会导致 tuple_size 特化给出编译错误:error C2143: syntax error: missing ',' before ';'

甚至可以允许模板类具有结构化绑定还是我遗漏了什么?

0 投票
0 回答
106 浏览

c++ - 使用此运算符的类成员的 C++17 结构化绑定

为什么 C++17 结构化绑定不喜欢this->运算符 in 是这样的语法:

如何在返回的变量名中添加类成员说明符?

0 投票
1 回答
1008 浏览

c++ - 为什么 clang++ 报告结构化绑定“在其初始化期间存储到'...'的值永远不会被读取”?

我有以下测试用例:

当我编译它时,clang++ (clang version 5.0.1 (tags/RELEASE_501/final)) 报告:

在上面的代码中,testcase是为doctest 单元测试包check_eq定义的宏,它们扩展为(某种自注册变量+函数对)和(基本上,“断言 a == b”,具有魔术处理)。DOCTEST_TEST_CASE()DOCTEST_CHECK_EQ

我知道这段代码正在执行,因为这west + 1是一个故意引入的错误。当我运行我的测试时,我收到这样一条失败消息:

据我所见,我使用了结构化绑定中的所有值:center出现在我的支票左侧,并north, south, east, west出现在右侧。为什么clang ++报告“从未读过”?

更新

这是重现该问题的代码。我运行这个命令行(取自输出make VERBOSE=1并减少):

我将此源文件用作test.cpp

0 投票
1 回答
2716 浏览

c++ - 在 C++17 中解包可变参数元组

c++17(可能是 C++2a)有什么比经典的 C++14 解包可变参数元组更好的方法std::index_sequence吗?

有什么比这更好的:

折叠表达式结构化绑定?有什么提示吗?我可以接受为什么我不能在这里使用这些提到的 C++17 功能的答案——但我更喜欢“解决方案。

0 投票
1 回答
184 浏览

c++ - 您能否在类类型上使用结构化绑定违反 ODR

结构化绑定功能表示,如果tuple_size模板是完整类型,它会与元组类似的分解一起使用。当std::tuple_size给定类型在程序中的某一点是完整类型而在另一点不完整时会发生什么?

(此处转载https://wandbox.org/permlink/4xJUEpTAyUxrizyU

在上面的程序中,类型在程序Something中的一个点通过公共数据成员进行分解,并在另一个点像分解一样回退到元组。我们std::tuple_size是否在幕后使用隐含的“已完成”检查违反了 ODR?

0 投票
1 回答
3647 浏览

c++ - C++ 错误:使用结构化绑定时,“[”标记之前的预期不合格 ID

序言:
我知道有相当多的主题具有相同或相似的标题。继续阅读,您将了解我的情况。


C++ 新手我目前正在阅读一本很明显有一个损坏的示例练习的书。
我的代码

几乎是这本书的精确副本。我只将原来的一行 cout 拆分为两行,并使用命名空间 std 而不是 std::。除此之外,代码与书中的示例完全相同。

为了 100% 确定我不只是有错字,我从书籍网站下载了示例文件。
我们都得到相同的错误:

本书假设其示例练习有效,但事实并非如此。
我发现了一些关于这个或类似错误的其他主题,但它们似乎都不适合我。

我还查了勘误表,但没有为本书的那部分记录错误。

我在 Linux (Xubuntu) 上,我用g++ -std=c++17 -o <outputname> <inputname.cpp>

有人可以告诉我这里有什么问题吗?然后我会将该错误报告给作者。

0 投票
2 回答
5617 浏览

c++ - 嵌套结构化绑定可能吗?

假设我有一个类型的对象

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