gpt4 book ai didi

c++ - 具有结构化绑定(bind)的不同 cv 限定符

转载 作者:可可西里 更新时间:2023-11-01 16:34:10 26 4
gpt4 key购买 nike

structured binding declaration在 C++17 中允许几个不同的选项,例如:

std::tuple<int, int> foo();

auto [a, b] = foo(); // a and b are: int
const auto [a, b] = foo(); // a and b are: int const
const auto& [a, b] = foo(); // a and b are: int const&

有什么方法可以给 ab 不同的 cv 限定符吗?例如 a 的类型为 intb 的类型为 int const?

最佳答案

否 - 这包含在 proposal 中的问答:

Should the syntax be extended to allow const/&-qualifying individual names’ types?

auto [& x, const y, const& z] = f(); // NOT proposed

我们认为答案应该是否定的。这是一个存储值并将名称绑定(bind)到其组件的简单功能, 不要声明多个变量。允许这样的资格将是功能蠕变,将功能扩展到 是不同的东西,即声明多个变量的方法。 如果我们确实想要声明多个变量,我们已经有办法拼写它:

auto val = f(); // or auto&&
T1& x = get<0>(val);
T2 const y = get<1>(val);
T3 const& z = get<2>(val);

关于c++ - 具有结构化绑定(bind)的不同 cv 限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43537167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com