• Является ли результат выражения UB?

    gbg
    @gbg
    Любые ответы на любые вопросы
    Все UB кроме последнего, потому что "=" не является точкой следования.
    Ответ написан
    Комментировать
  • Является ли результат выражения UB?

    Andrey2008
    @Andrey2008
    DevRel в PVS-Studio
    Всё сложно, так как стандарт меняется.

    i = i++;  // Это было неопределённым поведением до C++17
    i = ++i;  // А это было неопределённое поведение до C++11
    p[i] = i++;  // Это было неопределённым поведением до C++17

    Ещё на эту тему см. V567.

    В общем, теперь всё ещё более запутано и фиг разберёшься. :)

    Что делать? А просто не надо писать такие конструкции. Даже если теперь они стали корректными. Они путают программиста, читающего код и заставляют задумываться. Не делайте так. И пользуйтесь анализаторам PVS-Studio. Он укажет на непроектные и плохо написанные фрагменты кода.
    Ответ написан
    1 комментарий