gpt4 book ai didi

c++ - 像这样的 C++ 中的 "rebinding"引用是否合法?

转载 作者:IT老高 更新时间:2023-10-28 12:31:14 25 4
gpt4 key购买 nike

以下在 C++ 中是否合法?

据我所知,Reference 有一个微不足道的析构函数,所以它应该是合法的。
但我认为引用不能合法地反弹......可以吗?

template<class T>
struct Reference
{
T &r;
Reference(T &r) : r(r) { }
};

int main()
{
int x = 5, y = 6;
Reference<int> r(x);
new (&r) Reference<int>(y);
}

最佳答案

您并没有重新绑定(bind)引用,而是在另一个具有新位置的内存中创建一个新对象。由于旧对象的析构函数从未运行,我认为这将是未定义的行为。

关于c++ - 像这样的 C++ 中的 "rebinding"引用是否合法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21101774/

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