gpt4 book ai didi

c++ - 像这样重新安装一对引用文献合法吗?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:55:19 25 4
gpt4 key购买 nike

我想重新设置一对引用refPair

int a, b, c, d;
pair<int&, int&> refPair(a, b);

这样做似乎会导致 c 和 d 的值被复制到 a 和 b,这是我不想要的

refPair = pair<int&, int&>(c, d);

但是这样做不会

new(&refPair) pair<int&, int&>(c, d);

我想知道这是否合法并且不会导致任何未定义的行为。它适用于我的编译器,但我不确定它是否可移植。

最佳答案

我相当确定这是未定义的行为,因为构造像这样的非平凡类是非法的(std::pair 可以是非平凡的 AFAIK)。

无论如何,请查看可重新安装的 std::reference_wrapper

refPair = pair<std::reference_wrapper<int>, std::reference_wrapper<int> >(std::ref(c), std::ref(d));

关于c++ - 像这样重新安装一对引用文献合法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14549377/

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