Используйте современные стандарты C++, а не VS 2008

WinRoNe

Platinum
Joined
Jun 9, 2017
Messages
889
Reaction score
122
Age
27
Мы идем вперед
smile.gif
- читайте старые книги, учите старые книги, но:
1. Теперь С++ эволюционирует так: 3 года кардинальные изменения, 3 года фиксы.
т.е.
год 2011 (С++11) - кардинальные новшества
год 2014(С++14) - фиксы, удобства, для 11, ничего кардинального.
год 2017 (С++17) - снова кардинальны новшества,
год 2020-(2021) - уже шлют фиксы и пишут сатьи, че исправить в 2017 ..

2. Учите эти новые варианты. Они настолько облегчают жизнь...что жесть просто. Теперь за вас может думать очень быстрый i7. Реально. Только пишите по стандарту и не думайте, что вы его сможете умнее. Верьте своему компилятору.
Время, когда человек был сильно круче компа - кончилось. Теперь, в 99 % случаев, компилятор сделает БОЛЕЕ оптимальный код (если вы следовали стандарту), нежели вы бы могли выдумать. Более того, он автоматом будет оптимальным и на интелах, и на армах (анроид), и на любых других процах.

3. Итого - хватит юзать VS 2008. Вам нужен стандарт 11, как минимум, в g++ он есть. Для студентов сойдет QT SDK - там в комплекте QtCreator (писать) и самый последний g++.
4. В С++ есть такое понятие - не определенное поведение(UB - undefined behaviour). Это когда, вы заставляете компилятор делать что-то вне стандарта. Так вот. Оно может работать, но не всегда и не везде. UB означает, что на ваше действие стандарт не имеет мнения. Т.О., если вы будете избегать UB, то ваш код заработает везде и всегда - на всех процах - десктоп(интел) - мобила - (арм). Если вы будете допускать UB, то получите "оно работает только на виндовс 7 в полнолуние".
5. Т.о читайте стандарты - для особо занятых есть штуки "статический анализатор", он уже за вас почитал стандарт. В QtCreator автоматом нынче работает - и показывает на полях косяки. В случае анализатора - прямой ошибки нет, вам прийдется таки читать стандарт и понять, что он от вас хочет, и почему тут ошибка....и исправить - сплошной фан
smile.gif
 
Top