为什么结构化绑定不支持变量?

菲利普

C ++ 17添加了结构化绑定:

tuple<int, int, int> make_tuple();
int test() {
    auto [a, b, c] = make_tuple();
    return a | b | c;
}

我的直觉是尝试将它们用作参数包。

template <size_t N>
auto make_tuple();  // returns tuple with N ints
template <size_t N>
int test() {
    auto [...values] = make_tuple<N>();
    return (0 | ... | values);
}

A,我不能这样做。委员会为什么要排除这种功能?现在感觉到lambda捕获可以包含参数包了。

我知道委员会中充满了聪明的创造力,而且像我这样的想法肯定已经提出并被有充分的理由拒绝了。那是什么原因

轨道轻赛

随着时间的流逝,功能的发展是语言的本质。

仅仅因为某种语言还没有使用某种语言,并不意味着委员会已经完全拒绝了它。这并不意味着他们“排除”了它。可能只是它被忽略了,或者还没有被认真考虑过。请记住,std::make_unique直到C ++ 14才可用。

在这种特殊情况下,它是一个功能已经被提出,最近,作为P1061您将从修订历史记录部分中注意到,该委员会“对其进行了好评,并认为这是对我们时代的一项很好的投资”所以我想你很幸运。:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

为什么C不支持使用if-else语句初始化const变量?

为什么我收到“__constant__ 变量不支持动态初始化”?

为什么用唯一命名的变量来定义结构化绑定?

为什么GCC会为结构化绑定诊断未使用的变量,而Clang不会呢?

为什么结构化绑定将变量作为值而不是引用引入?

Spark结构化流-此查询不支持从检查点位置恢复

Spark结构化流-局限性?(源性能,不支持的操作,Spark UI)

结构化流例外:流聚合不支持追加输出模式

为什么 Spark RDD 不支持“扁平化”

为什么C ++ 17结构化绑定不使用{}?

为什么在GCC上结构化绑定失败?

为什么结构化绑定对“ std :: tie”对象失败?

为什么我不能编译结构化绑定?

结构化绑定中的变量类型

成员变量的结构化绑定

Spark结构化流异常:没有水印时不支持追加输出模式

为什么不支持dnd模块?

为什么我不支持URI

Swift为什么不支持例外?

为什么IList不支持AddRange

为什么configfs不支持mmap?

什么是结构化绑定的用例?

如果JSF不支持<f:actionListener>,为什么可以将它绑定到任意方法?

为什么GAE数据存储区不支持简单的结构字段类型?

为什么Java不支持结构?(只是出于好奇)

为什么结构化绑定不能按预期在结构上起作用?

为什么协变量和协变量不支持值类型

为什么不支持容器适配器中元素的初始化和迭代

为什么C ++ 11不支持指定的初始化列表作为C99?