На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
Модераторы: Qraizer, Hsilgos
Страницы: (6) « Первая ... 4 5 [6]  все  ( Перейти к последнему сообщению )  
> Распараллеливание выполнения без блокировок
    Цитата Wound @
    На что валидируется? На то что если он не нулевой, то вызвать член через указатель? А расскажи ка, когда он у тебя будет нулевым? В каком месте он у тебя нулевой? Там мусор будет содержатся, и соответственно твоя валидация сработает не так, как ты ожидаешь.

    Ты прав.

    Цитата Wound @
    То что она у тебя не валиться еще ни о чем совершенно не говорит.

    Ты прав.

    :blush:
      В дебаге там сразу 0 на стеке, в релизе не 0.
        Цитата Qraizer @
        В дебаге там сразу 0 на стеке

        Ну это я уж догадался. Вопрос в другом. Почему в остальных (с++11, с++14) в дебаге
        не нуль, а мне только"повезло" с с++17 и только со студийным компилером?
        Вот тут мистика.
          Ну мож в новых студиях стали очищать стэк. Заботятся. :rolleyes:
            Цитата JoeUser @
            Почему в остальных (с++11, с++14) в дебаге
            не нуль
            Потому что стандарт не требует инициировать переменные на стеке нулём.
              Та не, просто повезло. Хотя в данном случае, скорее не повезло. 100пудово в прологе main() стоит что-то типа sub esp, XX, где XX суммарный размер локальных переменных, и нули весьма глубоко внутри стека на входе в main() никак от самой main() не зависят.
                Вообще достаточно странно, потому что студия на моей памяти в дебаге всегда переменные инициализировала чем-то вроде 0xCCCCCCCC.
                  Цитата Qraizer @
                  Вообще достаточно странно

                  Да нет, я уже спрашивал. Но мне в тупую ответили:

                  Цитата amk @
                  Потому что стандарт не требует инициировать переменные на стеке нулём.

                  amk, извини, но это СТАНДАРТНЫЙ ОТВЕТ от Копетана Очевидность!

                  Ну не требует и не требует... Но почему одна и та же студия при указании разных стандартов ведет себя по разному?
                  Я же привел таблицу выше!
                    Цитата JoeUser @
                    Но почему одна и та же студия при указании разных стандартов ведет себя по разному?

                    Потому что создатель компилятора поспорил со своим коллегой, что это изменение кодревью пройдёт :D Чисто теоретически ты какой ответ ожидаешь услышать? Такая инициализация это деталь реализации, и она может быть любой, не противоречащей стандарту, что мы и наблюдаем.
                      Цитата JoeUser @
                      Ну не требует и не требует... Но почему одна и та же студия при указании разных стандартов ведет себя по разному?
                      Поиграйся оптимизацией, скорее всего и в дебаге, и в релизе сможешь получить оба эффекта.
                      0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                      0 пользователей:


                      Рейтинг@Mail.ru
                      [ Script execution time: 0,0371 ]   [ 16 queries used ]   [ Generated: 28.03.24, 09:40 GMT ]