C++ コンパイラは、「const bool &」の値が変更されないと想定できますか?
たとえば、次のクラスがあるとします。
class test {
public:
test(const bool &state)
: _test(state) {
}
void doSomething() {
if (_test) {
doMore();
}
}
void doMore();
private:
const bool &_test;
};
そして、私はそれを次のように使用します:
void example() {
bool myState = true;
test myTest(myState);
while (someTest()) {
myTest.doSomething();
myState = anotherTest();
}
}
_test の値が変更されないとコンパイラが想定することは、標準で許可されていますか。
私はそうは思いませんが、ただ確信したいだけです。