本文主要是介绍C++备忘录002:Structured Binding, 会生成临时变量,可能有昂贵的拷贝,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
auto [u, v] = s
相当于如下代码
auto e = s;
alias u = e.member1;
alias v = e.member2;
注意,此时临时变量e
是个拷贝,u
和v
相当于别名
int main() { struct Y {int a;std::string b;};auto y = Y{10, "hi"}; const auto &[a, b] = y; static_assert(std::is_same_v<decltype(a), const int>);static_assert(std::is_same_v<decltype(b), const std::string>);
}
const auto &[a, b] = y
中,生成的临时变量是const &
,没有拷贝产生,a
和b
也是const
修饰的别名
这篇关于C++备忘录002:Structured Binding, 会生成临时变量,可能有昂贵的拷贝的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!