Может ли компилятор 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 не изменится.
Я думаю, что нет, но просто хочу быть уверенным.