kray_zemli (kray_zemli) wrote,
kray_zemli
kray_zemli

std::map iterator UB

Делал тут тестовое задание. Оказывается, --begin() — это UB. А на MSVS всегда --begin() == end(), на что я давно привык полагаться — сколько себя помню, всегда так было.

На GCC, как выяснилось, в одних случаях --begin() == begin(), в других --begin() == end(). Но так как мой код, по несчастливой случайности, в обоих этих случаях отрабатывал корректно, то тестирование на онлайн GCC компиляторе ошибку тоже не выявило. На пустой мапе --begin() вообще крешится на GCC, но у меня такой ситуации не возникало.

Тем не менее, проверяющие докопались к UB и задание не засчитали, хотя работает по факту корректно.

Всё-таки винда лучше Linux, на ней даже std::map реализован адекватнее.
Subscribe

  • ГВОЗДИ

    Евгений Обухов ГВОЗДИ (документы, обнаруженные не археологами) Петиция Как мы есть плотники Вахремеевы, миром и по твоему наказу подряженныя на…

  • башорг

    KermlinRussia: Мы готовы простить Каддафи, что он диктатор и убийца, но бензин по 14 центов за литр и зарплата учителя $3 тыс. в мес. – это уже…

  • Анекдоты

    Идет заседание Верховной Рады Украины. На повестке дня вопрос: как использовать землю в окресностях Чернобыля? Злаковые сеять нельзя, корнеплоды тем…

  • Post a new comment

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments

  • ГВОЗДИ

    Евгений Обухов ГВОЗДИ (документы, обнаруженные не археологами) Петиция Как мы есть плотники Вахремеевы, миром и по твоему наказу подряженныя на…

  • башорг

    KermlinRussia: Мы готовы простить Каддафи, что он диктатор и убийца, но бензин по 14 центов за литр и зарплата учителя $3 тыс. в мес. – это уже…

  • Анекдоты

    Идет заседание Верховной Рады Украины. На повестке дня вопрос: как использовать землю в окресностях Чернобыля? Злаковые сеять нельзя, корнеплоды тем…