如何解决是否为引用的std :: tuple的参数指定了分配顺序?
以下是code:
<!-- https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java -->
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>3.141.59</version>
</dependency>
保证打印#include <iostream>
#include <tuple>
int main()
{
int a = 1,b = 2;
std::tuple<int&,int&>(a,b) = {b,a};
std::cout << a << " " << b;
}
吗?它在gcc和clang上执行。看来分配是这样完成的:2 2
,然后是a = b
。
如果以相反的方式完成分配:b = a
然后1 1
,它还能打印b = a
吗?
我发现wording有点不清楚。另外,为a = b
上的relational运算符指定了顺序(std::tuple
和==
的从左到右,并且两者都有短路),所以为什么不这样做呢?指定类似的任务?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。