Блог пользователя NALP

Автор NALP, 12 лет назад, По-русски

Запускаем у себя следующий код:

#include <iostream>
using namespace std;
int main() {
    cout << "??-" << endl;
    return 0;
}

Фишка появляется в Visual C++ 2005, 2008. Кто знает почему так?

UPD: круто, что можно спросить тут что-нибудь, и ответ придет почти сразу :) Всем спасибо

  • Проголосовать: нравится
  • +42
  • Проголосовать: не нравится

»
12 лет назад, # |
Rev. 2   Проголосовать: нравится +8 Проголосовать: не нравится

~, vc2008, win7

»
12 лет назад, # |
  Проголосовать: нравится 0 Проголосовать: не нравится
  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится +5 Проголосовать: не нравится

    о, спасибо

    Я, честно говоря, не знал о такой фишке. И во время контеста это очень неожиданно :)

»
12 лет назад, # |
  Проголосовать: нравится +11 Проголосовать: не нравится

Не имею под рукой VS, но в чем неожиданность?

gcc выводит ??-

gcc с опцией -trigraphs выводит ~

Почему так происходит.

  • »
    »
    12 лет назад, # ^ |
      Проголосовать: нравится 0 Проголосовать: не нравится

    интересно, а зачем включать эту опцию в Visual Studio по умолчанию? причем, в 2010 она выключена, значит...

    неприятный эффект на соревновании, а вдруг тесты содержат такие последовательности?

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      Тесты тут не причём, эта последовательность заменяется препроцессором.

»
12 лет назад, # |
  Проголосовать: нравится +1 Проголосовать: не нравится

Эта фича обеспечила мне час увлекательного дебага при решении этой задачи: Архиватор (Тимус)

Локализовав багу до злополучного "??-", был шокирован и думал что это бага компилятора)

  • »
    »
    12 лет назад, # ^ |
    Rev. 2   Проголосовать: нравится 0 Проголосовать: не нравится

    VS не выдаёт никаких предупреждений о таких последовательностях? Неприятно.

    • »
      »
      »
      12 лет назад, # ^ |
        Проголосовать: нравится +3 Проголосовать: не нравится

      Он не только не выдает предупреждений, так еще по умолчанию обрабатывает их =)

      Как говорится, happy debug!

»
12 лет назад, # |
  Проголосовать: нравится -7 Проголосовать: не нравится
Проклятые Delphi!

Пора бы уж запомнить, что Mod и Div там с int64 жутко тормозные. Из-за этого этого потерять задачу E — ну очень обидно...