C++20

Всички останали въпроси и теми.
Потребителски аватар
themean
Power User
Power User
Мнения: 859
Регистриран на: 02 дек 2010 22:51

C++20

Мнение от themean » 31 авг 2017 09:22


ikolev
модератор
модератор
Мнения: 1653
Регистриран на: 20 ное 2003 22:39
Местоположение: София
Контакти:

Re: C++20

Мнение от ikolev » 07 ное 2017 02:42

Интересно звучи, но вече ми е омръзнало да мечтая за нещата които ще се появят в С++ стандарта след X години и ще могат да се ползват в трите основни компилатора след още Y.

Потребителски аватар
themean
Power User
Power User
Мнения: 859
Регистриран на: 02 дек 2010 22:51

Re: C++20

Мнение от themean » 08 ное 2017 14:01

Първия признак, че остаряваш

pdimov
gosu
gosu
Мнения: 871
Регистриран на: 02 дек 2003 01:04

Re: C++20

Мнение от pdimov » 17 ное 2017 20:52

Вече не е като едно време; C++17 - още официално неиздаден - вече практически го има в g++ и clang++, и почти го има във MSVC 2017.

ikolev
модератор
модератор
Мнения: 1653
Регистриран на: 20 ное 2003 22:39
Местоположение: София
Контакти:

Re: C++20

Мнение от ikolev » 11 дек 2017 11:04

Определено е по-добре от едно време, но хората които са ограничени в смяната на компилатора (по различни причини) са щастливи ако могат да ползват една версия назад от текущата. Аз на едната ми работа съм ограничен от VC 2015 и GCC 4.8 (които дават половин С++14), a на другата от VC 2010 (щипка С++11). И ми се струва се че тия хора са мнозинство.

bobeff
Often here
Often here
Мнения: 51
Регистриран на: 23 фев 2009 00:33

Re: C++20

Мнение от bobeff » 13 дек 2017 15:38

ikolev написа:
11 дек 2017 11:04
Определено е по-добре от едно време, но хората които са ограничени в смяната на компилатора (по различни причини) ...
Една от причините, поради които може да си ограничен от стара версия на компилатора, за която се сещам, е ако пишеш плъгини за third party software. Какви други причини съществуват?
ikolev написа:
11 дек 2017 11:04
И ми се струва се че тия хора са мнозинство.
Ако е само горната причина, мисля, че все пак тези хора не са мнозинство. :)

Потребителски аватар
themean
Power User
Power User
Мнения: 859
Регистриран на: 02 дек 2010 22:51

Re: C++20

Мнение от themean » 15 дек 2017 13:25

bobeff написа:
13 дек 2017 15:38
ikolev написа:
11 дек 2017 11:04
Определено е по-добре от едно време, но хората които са ограничени в смяната на компилатора (по различни причини) ...
Една от причините, поради които може да си ограничен от стара версия на компилатора, за която се сещам, е ако пишеш плъгини за third party software. Какви други причини съществуват?
ikolev написа:
11 дек 2017 11:04
И ми се струва се че тия хора са мнозинство.
Ако е само горната причина, мисля, че все пак тези хора не са мнозинство. :)
Има супер много причини да си ограничен до/от конкретна версия. Ще изредя две, на които аз лично съм ставал свидетел
1) Масивно количество код е написано от масивни некъдърници, които са ползвали всеки хак и бъг в компилатора който знаят и нещото не работи на новите версии дори със стария с++.
2) Компиларора е софтуер и като всеки има бъгове.За много компании това може да е много голям проблем и предпочитан да се придържат към нещо, което е тествано.

Предполагам има и други причини, но това са тези на които аз съм ставал свидетел.

ikolev
модератор
модератор
Мнения: 1653
Регистриран на: 20 ное 2003 22:39
Местоположение: София
Контакти:

Re: C++20

Мнение от ikolev » 16 дек 2017 16:07

В единия от моите случаи причината е първата която каза bobeff, плъгини. Mакар че ние там разчитаме на неофициалната съвместимост с по-новите компилатори, иначе трябваше още да седим на VC 2005.

В другия е задължението да се поддържа WindowsXP заради старите машини из държавната администрация, а още не смея да пробвам XP-вариантите на новите компилатори на MS (или бях пробвал и имаше някакъв проблем, не помня, може би е време да опитам пак). Там и инсталирането на VC runtime е известен проблем, но да речем че ще го наложим.

В масовия случай обаче има едни огромни компании където всяка промяна се случва много бавно и с години закъснение. Наскоро бях консултант в една такава и видях на живо. Друг масов случай са компаниите които са ограничени от хардуера - почти всичкият ембедед софтуер (а той мисля че вече е голям процент от С++ света) ползва странни, "бавно развиващи се" компилатори. А и като гледам разни видеа от С++ конференции, хората дето задават въпроси редовно се оплакват от ограниченията си.

bobeff
Often here
Often here
Мнения: 51
Регистриран на: 23 фев 2009 00:33

Re: C++20

Мнение от bobeff » 18 дек 2017 18:21

ikolev написа:
16 дек 2017 16:07
Там и инсталирането на VC runtime е известен проблем, но да речем че ще го наложим.
Как стои въпроса със статично link - ване на runtime - а? На мене статичното link - ване винаги ми изглежда за предпочитане, ако няма някакви пречки защото не се занимаваш да инсталираш redistributables разни или да подмяташ dll - и с exe - то.

Обаче не знам дали няма някакви legal issues с него. Примерно съм чувал, че под Linux, тъй като libstdc++ е GPL, човек няма право да я link - ва статично в комерсиален софтуер. Обаче май това ограничение го няма с libc++, която е за clang++, обаче може да бъде ползвана също и с g++ мисля.

Другата възможна пречка за която се сещам е, ако се ползва някоя closed source библиотека която под Windows e build - ната с "/MD" и няма начин да си я prebuild - неш или да поискаш build - нат с "/MT" вариант.

Някакви хора постоянно ми твърдят, че статичното link - ване на runtime - а "Не работи!", но така и не съм получил ясен отговор защо? Аз съм нямал проблеми с него когато съм го тествал, но това все пак не е било с някакъв голям и сложен софтуер.

ikolev
модератор
модератор
Мнения: 1653
Регистриран на: 20 ное 2003 22:39
Местоположение: София
Контакти:

Re: C++20

Мнение от ikolev » 19 дек 2017 01:01

bobeff написа:
18 дек 2017 18:21
Другата възможна пречка за която се сещам е, ако се ползва някоя closed source библиотека която под Windows e build - ната с "/MD" и няма начин да си я prebuild - неш или да поискаш build - нат с "/MT" вариант.
Тъкмо се чудех кои бяха проблемите със статичното линкване и ето, този е един от тях. Имаме такива библиотеки.

Но като цяло доколкото съм забелязал статичното линкване с VC runime-а е сериозно непрепоръчвано от MS. Не мисля че има лицензни проблеми, просто понеже все по-малко хора го ползват, ползването става все по-трудно (ето примерно, тези които предлагат само binary го правят само с динамичен runtime).

Отговори