Visual C++ и g++ -- нюансы реализации

Всё что связано с программированием на С++
Ответить
Vant
c7i.team
Сообщения: 179
Зарегистрирован: Вс дек 05, 2010 4:22 am

Visual C++ и g++ -- нюансы реализации

Сообщение Vant » Сб апр 05, 2014 9:41 pm

Не помню, кидал ли сюда эту статью или нет, но сегодня на одном форуме некий всезнайка c ажник 5-летним опытом работы заявил мне, что C++ везде одинаков, что под Виндой, что под Линуксом. Я не стал объяснять, что даже под Линуксом дело не ограничивается g++, не говоря уже о том зоопарке, что существует под самизнаетечем... Но вот про эту статью мне вспомнилось, отчего и спешу положить сюда ссылочку:

http://unick-soft.ru/Articles.cgi?id=7

PS: мне все-таки кажется, если это только не дежавю, что где-то я читал более расширенную статью на заданную тему.

Diatlo
c7i.team
Сообщения: 251
Зарегистрирован: Пт ноя 06, 2009 6:04 am

Re: Visual C++ и g++ -- нюансы реализации

Сообщение Diatlo » Вс апр 06, 2014 5:45 am

C++ везде одинаков, что под Виндой, что под Линуксом
Это он сказал неподумавши =)

КОгда он наткнется на

Код: Выделить всё

For (....;.....;i++)
   if ();
и трассируя в MVS Увидит, что цикл for тупо крутит счетчик, а после его окончания выходит из цикла
и выполняет 1 раз if - то использование for () {} даже для 1 if прочно войдет в его практику.

Diatlo
c7i.team
Сообщения: 251
Зарегистрирован: Пт ноя 06, 2009 6:04 am

Re: Visual C++ и g++ -- нюансы реализации

Сообщение Diatlo » Вт апр 15, 2014 1:41 pm

Вот регэсп для поиска в MVS (режим regexp в Поиск в файлах), родился с 25 попытки, наверное =)))
^[^f]+for[^\(]+\([^;]*;[^;]*;[^\)]*\)[^\{\n;]*\n[^\{]+\n
выцепляет все for без {

Vant
c7i.team
Сообщения: 179
Зарегистрирован: Вс дек 05, 2010 4:22 am

Re: Visual C++ и g++ -- нюансы реализации

Сообщение Vant » Чт апр 17, 2014 9:51 am

Попробовал изобразить регексп для замены /* xyz */ на // xyz
и обломался...
Внутри дефайнов только первый вариант как правило и можно юзать, к тому же им же вырезают куски в центре строки...
И еще забавная плюшка всплыла, первый раз с ней столкнулся...
Дело в том, что у символа перевода строки \ приоритет выше чем у однострочного коммента со всеми спецэффектами:

Код: Выделить всё

if( a == true ){ // забавный такой коммент \
    b = 1;
    c = 2;
}
Если после обратного слэша не будет ничего, включая пробелы -- b = 1 будет считаться комментарием...
Достаточно после слэша поставить пробел - и вуаля...
Компилятор правда выдает варнинг на такие комменты, но мы то с вами прекрасно знаем, что варнинги придуманы для слабаков. :lol:

Diatlo
c7i.team
Сообщения: 251
Зарегистрирован: Пт ноя 06, 2009 6:04 am

Re: Visual C++ и g++ -- нюансы реализации

Сообщение Diatlo » Пт апр 18, 2014 2:29 pm

зачетная плюха =))

Я вроде бы разобрался с доставшим уже глюком со временем (сохранение-восстановление в/из файлов).
То работает, то не работает, переменная, ограниченная по времени сохраняется, восстанавливается... Но с неправильным
временем и в update() при обновлении переменных благополучно удаляется =))).

Ответить