1

我试图通过引用限定符强制类的 const 'getter' 方法仅在类的左值实例上调用,并且由于某种原因得到意外结果(我正在使用clang 6.0.1编译C++ 17支持,通过c++1z标志,在Windows上):

该声明还允许在右值引用bool getVal() const &;上调用该方法。

该声明bool getVal() &; 不允许在右值引用上调用该方法,但是据我了解-该函数不再是 const 方法,这对于“getter”方法在设计上是有问题的。

获得方法的两个特征的正确方法是什么?

4

1 回答 1

3

使用bool getVal() const &;,但为右值添加已删除的重载:

bool getVal() const && = delete;
于 2020-06-27T11:31:04.447 回答