![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
Люди, товарищи, друзья.
Мы идем вперед ![]() 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 автоматом нынче работает - и показывает на полях косяки. В случае анализатора - прямой ошибки нет, вам прийдется таки читать стандарт и понять, что он от вас хочет, и почему тут ошибка....и исправить - сплошной фан ![]() З.Ы. Сказаное относится на конец Апреля 2017 от рождества не существуещего Христа. В сильно далеком будущем хз. Если можно - закрепите. Последний раз редактировалось Alex11223; 24.04.2017 в 17:46. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,821
|
![]()
4. У Visual Studio появилась бесплатная версия. Для старта ее вполне хватит.
|
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 12.01.2011
Сообщений: 19,500
|
![]()
Она давно была (Express), появилась Community — аналог Pro для индивидуальных разработчиков и маленьких компаний.
Основные отличия вроде бы в наличии MFC (что наверно тоже не лучший выбор для GUI в 2017 году) и возможности ставить расширения типа ReSharper.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом. Последний раз редактировалось Alex11223; 24.04.2017 в 13:51. |
![]() |
![]() |
![]() |
#4 | |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
![]() Цитата:
В C++14 немного их поубавилось. В C++17 еще доработали (я уже себе написал еще одну доработку). ![]() Мечты. Бывают баги в компиляторах, бывают баги в коде, бывает, что одно и то же предложение стандарта разработчики компиляторов трактуют по-разному. ![]() Бывает, что нет UB, но есть, например, implementation-defined, который тоже не везде будет работать. Некоторые требования стандарта просто не выполняются, либо выполняются частично, т.к. полное соответствие не рационально. И это мы еще молчим про использование платформозависимых вещей и разнообразных фишек компилятора. Да и сторонние библиотеки могут подвести. ![]() |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
..потому я и ставлю кроссплатформам оплаченым -std=c++11, а своему франу на гите ++14.
А 17 пока даже не читал толком) ..простите ...не вовремя) я еще 14 недоучил))))) я б мож и впродакшн 14 поставил, но его точно все маки поддержат? - помоему нет ...потому 11 ...и кстати...реально челу перейти с 2003 на 2011 занимает 2 года минимум писать..на 14 апнутся - еще год ( с крутого 11)... ...кароче я хз куда они рванули...средний программер, не говря уж о преподах - не втащать Последний раз редактировалось Alex11223; 24.04.2017 в 17:45. |
![]() |
![]() |
![]() |
#6 |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
![]()
Не особо важно какой там стандарт.
Не все ему следуют, и на это есть причины. Например, в C++03 для std::list::size не была указана сложность. Теперь она строго O(1), однако в gcc оно O(N), потому как если они сделают O(1), то поломается совместимость с ABI прошлых версий. ![]() Так что если нужен список с получением размера за O(1), то для gcc придется использовать std::__cxx11::list, а не std::list, зато в другом компиляторе код с std::__cxx11::list вообще не скомпилируется. ![]() Это лишь один из примеров подобного рода совместимости со стандартом. ![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
Простите ... программирую 31 год уже по факту, имею там образование "информатика", но так и не понял шо ето значит О(1), О (n) и хера ето плохо...я так и не понял. Более того, я не скажу что я ваще лох. Я напсиал на ява вещь, каторая на анроиде 1 ядро с 800 мгц частотой играет мне радио с юсб с частотой фетча 250 khz....но я не понимаю вашей математики( простите.
Последний раз редактировалось Alex11223; 24.04.2017 в 17:45. |
![]() |
![]() |
![]() |
#8 | |
Вредный кошак
Участник клуба
Регистрация: 14.10.2012
Сообщений: 1,159
|
![]()
O(1) - константная сложность.
O(N) - линейная сложность. Это значит, что если Вы напишите Код:
а в gcc внутри сначала пробежим по всему списку, и посчитаем сколько элементов O(N). А прикиньте каждый раз так бегать. ![]() Хуже это или лучше? Зато в gcc будет очень быстрый splice для списка O(1), тогда как в cl тот же splice будет работать за O(N) (т.е. будем бегать по куску списка при каждом сплайсе). Цитата:
Тут тоже самое. Извините, но не знать этого - жесть. |
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 12.04.2017
Сообщений: 889
|
![]()
ага..
..т.е. не зря я делаю lock_mutex for( szt i =0, sz =some.max; i < sz ; ++i) /.прстите ) даже читать трудно ( много лишних слов умных)) Последний раз редактировалось alexzk; 24.04.2017 в 15:17. |
![]() |
![]() |
![]() |
#10 |
C++ hater
Старожил
Регистрация: 19.07.2009
Сообщений: 3,333
|
![]()
преподы роисских вузов смотрят на тебя с недоумением. турба си плас плас - вот где сила
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay
My other car is cdr. Q: Whats the object-oriented way to become wealthy? A: Inheritance |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Fortran стандарты | Freemandes | Помощь студентам | 0 | 11.05.2014 13:47 |
Стандарты IEEE | Sam Gold | Обсуждение статей | 2 | 10.03.2011 14:16 |
где искать стандарты? | Пепел Феникса | Общие вопросы по программированию, компьютерный форум | 4 | 14.05.2010 21:43 |
Языковые стандарты | _SERGEYX_ | Общие вопросы Delphi | 5 | 27.02.2009 09:53 |
Язык и региональные стандарты | All517 | Общие вопросы Delphi | 4 | 13.08.2008 07:06 |