&(运算符地址)可以返回 nullptr 吗?

问题描述 投票:0回答:1

&
运算符的典型用法来看,这听起来像是一个微不足道的问题,但是标准是否保证在尝试获取地址时,address-of-operator 无法返回
nullptr

c++ language-lawyer
1个回答
0
投票

不保证

operator&
不能返回
nullptr
,例如通过重载此运算符。

这是一个人为的例子:

#include <iostream>

struct foo  { foo* operator& ()  { return nullptr; }  };

int main()
{
    foo f;
    
    if (&f == nullptr) {  std::cout << "nullptr detected\n";  }
}

演示

© www.soinside.com 2019 - 2024. All rights reserved.