А какой смысл в нестатическом константном члене?
Я так подозреваю, что в данной ситуации константный член автоматом делается статическим, а строки инициализируется значением 1. В старшем байте получается 0.
Здравствуйте, Евгений Коробко, Вы писали:
ЕК>А какой смысл в нестатическом константном члене?
Как правило так не делают, но ничего запретного в этом нет. Тем самым устанавливается, что значение некоторого поля объекта не может быть изменено после инициализации/конструирования, я рассматривал это как дополнительную защиту/комментарий.
ЕК>Я так подозреваю, что в данной ситуации константный член автоматом делается статическим, а строки инициализируется значением 1. В старшем байте получается 0.
Ничего не понял. Сам подумай, если есть несколько таких объектов (массив), и константный член каждого инициализорован по-разному, то чему будет равен этот статический член?
Здравствуйте, folk, Вы писали:
F>Долго не мог понять что у меня не так... Эффект проявляется только в релизе.
Действительно баг, проявляется при /O1 или /O2 и только на MSVC7.1.
MSVC7 и MSVC6 дают ошибку:
test167.cpp(9) : error C2552: 'a01' : non-aggregates cannot be initialized with initializer list
'Pin' has a const data member 'Pin::idx' : Types with a const data member are not aggregate