c++ - const 成员 func,只能在左值实例上调用,使用 ref 限定符

c++ - const member func, that can be called upon lvalue instances only, using a ref-qualifier

我试图强制 class 的 const 'getter' 方法被调用 仅 class 的左值 实例,通过 ref-qualifier 并且出于某种原因得到了意想不到的结果(我正在使用 clang 6.0.1 进行编译,支持 C++ 17,通过c++1z 标志,在 Windows):

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

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

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

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

bool getVal() const && = delete;