Здравствуйте, Станислав Артемкин, Вы писали:
СА>Всем привет,
СА>Возможно будет полезно. Следующая имплементация падает в релизной версии, скомпилированной MSVC++. Это дефект оптимизатора MSVC++.
СА>СА>Foo.h
СА>----------
СА>class Foo
СА>{
СА>public:
СА> static Foo& GetInstance()
СА> {
СА> static Foo instance;
СА> return instance;
СА> }
СА>};
СА>
На мой взгляд — ничего удивительного не происходит. Статическая ф-я GetInstance() инлайнится в 2 модуля компиляции вместе со своей статической переменной. 2 разные переменные — разные и значения. Другое дело, насколько такое поведение комилятора соответсвует стандарту... Мне кажется, что вполне, но если кто-то докажет обратное — буду благодарен за ценную инфу. )))