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

  • Другие 90-е

    Ванюков был одним из трех человек, державших Петроплаховск. (Воображение так и рисует трех мускулистых атлантов, держащих на плечах ломоть земли,…

  • (no subject)

    Либералы — за свободу. Ты — против либералов. Следовательно, ты против свободы? Вор должен сидеть в тюрьме.

  • Расовое профилирование, ответ либеральному шулеру

    Всё правильно: видишь кавказскую наружность — прояви повышенную бдительность и осмотрительность. Кто этого не делает, тех забивают в метро…

  • 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

  • Другие 90-е

    Ванюков был одним из трех человек, державших Петроплаховск. (Воображение так и рисует трех мускулистых атлантов, держащих на плечах ломоть земли,…

  • (no subject)

    Либералы — за свободу. Ты — против либералов. Следовательно, ты против свободы? Вор должен сидеть в тюрьме.

  • Расовое профилирование, ответ либеральному шулеру

    Всё правильно: видишь кавказскую наружность — прояви повышенную бдительность и осмотрительность. Кто этого не делает, тех забивают в метро…