我正在尝试通过ref限定符强制仅通过类的的左值实例来调用类的const'getter'方法,并且由于某种原因而得到了意外的结果(我正在使用clang 6.0进行编译。 1,在Windows上通过c++ 1z标志支持C++ 17:
声明bool getVal() const &;
允许在右值引用上将方法称为。
声明bool getVal() &;
据我所知,不允许在右值引用BUT上调用该方法-该函数不再是const方法,而不再是const方法,对于“getter”方法而言,这在设计上是有问题的。
获得方法的两个特征的正确方法是什么?
最佳答案
使用bool getVal() const &;
,但为rvalues添加一个删除的重载:
bool getVal() const && = delete;
关于c++ - c++-const成员func,只能使用ref限定符在左值实例上调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62609367/