Код
void WriteEnable(bool f); // некая внешняя функция
class EnableWritableMode
{
public:
EnableWritableMode()
{
WriteEnable(true);
}
~EnableWritableMode()
{
WriteEnable(false);
}
};
class EnableWritableMode
{
public:
EnableWritableMode()
{
WriteEnable(true);
}
~EnableWritableMode()
{
WriteEnable(false);
}
};
Далее используем его:
Код
void bar::foo()
{
EnableWritableMode enter;
WriteData(...);
}
{
EnableWritableMode enter;
WriteData(...);
}
Всё работает правильно, но если объект enter создать как:
EnableWritableMode enter();
То, он просто игнорируется - ни конструктор, ни деструктор не вызываются. Проверял iar'овским компилятором - точно также себя ведёт. Собственно вопрос: где об этом написано?
ps: настройки проектов в обоих случаях max speed.