返回引用且仅返回引用

Returning a reference and only a reference

本文关键字:返回 引用      更新时间:2023-10-16

我有以下函数,它是网格类的一部分:

T& select(unsigned int x, unsigned int y)
{
    return nodes[x + width * y].element;
}

有什么方法可以强制编译器拒绝从返回的T&构造T而不删除 T 的复制构造函数(甚至可能不是一个类)?

auto n = grid.select(1,1); // this should be illegal

当你返回一个引用时,代码的用户稍后如何处理它完全不受你控制。 他们可以使用您的引用来创建副本这一事实在该语言中是有效的。