gpt4 book ai didi

c++ - std::tie 是否允许隐式转换?

转载 作者:可可西里 更新时间:2023-11-01 18:18:22 27 4
gpt4 key购买 nike

在 c++11 中,std::tie 是否允许隐式转换?

以下代码编译并运行,但我不确定幕后到底发生了什么,或者这是否安全。

std::tuple<float,float> foo() { return std::make_tuple(0,0); }

double a, b;
std::tie(a,b) = foo(); // a and b are doubles but foo() returns floats

最佳答案

使用元组移动赋值运算符的模板版本会发生什么

template< class... UTypes >
tuple& operator=(tuple<UTypes...>&& other );

它使用自己的移动赋值语义一个一个地移动赋值各个元组成员。如果相应的成员是隐式可转换的 - 它们将被隐式转换。

这基本上是 std::pair 中类似功能的自然扩展,我们已经享受了很长时间。

关于c++ - std::tie 是否允许隐式转换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40252360/

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