Может ли компилятор C ++ предположить, что значение const bool & не изменится?

Может ли компилятор 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 не изменится.

Я думаю, что нет, но просто хочу быть уверенным.

5
задан zwol 26 February 2011 в 17:51
поделиться