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

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

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

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

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

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

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

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

~, vc2008, win7

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

    о, спасибо

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

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

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

gcc выводит ??-

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

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

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

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

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

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

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

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

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

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