Поймал себя на недопонимании концепции константной корректности в D2.0. Все-таки константность — это свойство переменной, такое же, как int или double. Константа не просто указывает на невозможность модификации значения переменной, но и предписывает компилятору сделать возможные оптимизации. В частности, может оказаться, что значение константы непосредственно встраивается в код или размещается в read-only страницах памяти. Причем, константы, которые помечаются программистом как немодифицируемые для повышения читабельности, могут изменяться в других местах кода и отличаются от действительно неизменяемых констант. В D2.0 используются ключевые слова const и invariant соответственно. Я столкнулся со следующей особенностью применения атрибута auto:
const int PAGES = 64;
...
auto k = PAGES; // тип такой же, как и у инициализатора
...
k++; // нельзя, т.к. k — const int
03 марта 2008
Константы и auto
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий