我有以下函数,它是Grid类的一部分:
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
答案 0 :(得分:0)
当您返回引用时,代码的用户以后使用它完全不受您的控制。他们可以使用您的引用来创建副本的事实在该语言中是有效的。