将rvalue引用定义为null

时间:2017-06-21 19:32:23

标签: c++11 rvalue-reference

我是C ++的新手。我有一个问题,比如我们是否可以定义一个对null的rvalue引用?

class Foo { }; 
Foo&& foo = nullptr;

我收到了错误: 引用类型' Foo'无法绑定到类型的右值' nullptr_t'

1 个答案:

答案 0 :(得分:1)

  

我有一个问题,比如我们是否可以定义对null的rvalue引用?

标准(工作草案)说no, it's not possible(强调我的):

  

应初始化引用以引用有效的对象或函数。 [注意:特别是,在一个定义良好的程序中不能存在空引用,因为创建这样一个引用的唯一方法是将它绑定到通过空指针间接获得的“对象”,这会导致未定义的行为。

它适用于左值和左值引用。有关详细信息,请参阅this bullet

  

除非明确指出,否则它们在语义上是等效的,通常称为参考。