Автор |
Съобщение |
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 10:53 pm Мнения: 4174 Местоположение: Brussels / Пловдив
|
C++
Доста време не бях пипал модерно C++ и явно съм изостанал от добавените модерности в него - а то не е като да няма, като те това направо ме облещи: User-defined literals (since C++11)... и не мога да видя смисъла в ""_mytype и "" _print т.е. то е ясно, че може да се прави и така ама за чий ще му е на някой да осира така сорса?!
_________________ Мразя да мразя ...
|
Чет Мар 05, 2020 12:49 pm |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10356 Местоположение: Добрич
|
Re: C++
Предполагам знаеш разликата между compile time и run time... С въвеждането на constexpr в С++ се даде възможност да се пише код, който се изпълнява compile time. Преди това беше изцяло във възможностите на компилатора. Примерно ако ти трябва дължината на стринг можеше да напишеш strlen("bla-bla") и компилаторът ще се усети, че няма нужда да вика функции. Той може да преброи символите. Но не всички компилатори са толкова добри, а и най-добрите са ограничени в това какво може да се оптимизира. Докато с constexpr вече програмиста има контрол върху това какво и как трябва да се оптимизира. Просто си овърлоадваш функцията с compile time версия и run time версия. След това при всяко викане компилатора гледа дали работиш с константи и ако да прави сметките и замества викането с резултата. Ако не - остава си викането на рън тайм версията. Това даде възможност и за друга екстра - да си ползваш литерали в сорса в една мерна единица, а те да се компилират в друга. Примерно аз работя в метрична мерна система и предпочитам константите ми да са в метри, милиметри и т.н. Но ако трябва да ги подавам на библиотека, която е в имперски мерни единици трябва да обръщам всички константи ръчно. Което е тъпо.. Но с оператор "" може да си дефинираш конверсия. Както и в твоя пример в сорса кода ползват градуси, които се компилират като радиани. Съгласи се, че е удобство
|
Чет Мар 05, 2020 1:14 pm |
|
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 10:53 pm Мнения: 4174 Местоположение: Brussels / Пловдив
|
Re: C++
Е, аз заради това ""_deg го пропуснах - за него донякъде има смисъл, но останалите примери ми идват безумни.
А това с constexpr наистина има смисъл за да накара компилатора да покаже грешка ако в съотвената функция не е stateless т.е. може не може да се изчисли compile time.
Та това което ме изуми е добавянето на тези литерални суфикси - с тях навика да парсваш с поглед сорс не ти върши работа (то аз така и "открих" това нововъведение) т.е. ако погледнеш един сорс на модерно C++ не можеш веднага да прецениш как би се компилирал без да си прегледал и всички важящи дефиниции в дадения контекст дефинирани по напред в същият файл и в инклуднатите файлове. Да, така се пише лесно първоначално докато всичко ти е в главата но ако трябва да се пипа след време или пък да се включи нов програмист се губи сумати време само защото някой е прекалил с модерностите.
_________________ Мразя да мразя ...
|
Чет Мар 05, 2020 1:35 pm |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10356 Местоположение: Добрич
|
Re: C++
Мда, с модерностите нещата лесно могат да излязат от контрол. Особено ако почнеш да работиш с шаблони... Аз се опитах да направя опростена версия на STL-a. Мога да ти кажа, че ако му погледнеш сорсовете тия примери дето даваш са като за ниво детска градина
|
Чет Мар 05, 2020 1:51 pm |
|
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 10:53 pm Мнения: 4174 Местоположение: Brussels / Пловдив
|
Re: C++
Гледал съм ги навремето като излезнаха - още тогава бяха супер омотани за да вървят на различни версии и компилатори и предполагам, че едва ли са станали по четливи с времето.
Последните години все повече ме мъчи дългосрочната цена на разработка на софтуер и установих, че от всичко най евтино излиза plain old C (ако може с const) където всичко е explicit и с един grep можеш да проследиш кое къде се ползва без да се налага да ползваш умно IDE. Да, изисква повече усилия в началото но с времето се изплащат многократно докато при модерните езици където всичко е implicit първоначалното време за разработка е малко, но пък след време става все по скъпо. Разбира се всеки проблем е и предимство т.е. ако пазара е ширпотреба и не се налага дългосрочна поддръжка няма смисъл да се оскъпява първоначалната разработка или пък ако си под изпълнител и ти се плаща на time & materials тогава по скъпата разработка във времето е за предпочитане - разбира се ако клиента се подлъже по привидно евтината разработка в началото.
_________________ Мразя да мразя ...
|
Чет Мар 05, 2020 2:54 pm |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10356 Местоположение: Добрич
|
Re: C++
то търсенето е ключово, независимо на какво пишеш
|
Чет Мар 05, 2020 5:55 pm |
|
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 10:53 pm Мнения: 4174 Местоположение: Brussels / Пловдив
|
Re: C++
търсене има колкого искаш, предлагане няма Присетих се за един стар виц: В майкрософт търсели с bing но намирали с google ....
_________________ Мразя да мразя ...
|
Чет Мар 05, 2020 6:44 pm |
|
|
michev
Ранг: Форумен бог
Регистриран на: Сря Юли 11, 2007 9:16 am Мнения: 1705
|
Re: C++
Да продължа и аз малко оффтопика До момента като гледам, клиента избира.. т.е не избира а направо си иска минимално време за девелопмент (възможно най-ниска цена). Това със С ще ти е трудно да го постигнеш. Само си представям да имаш много обработки на стрингове и от сега те виждам как ще се метнеш от някъде ако ти се наложи да го пишеш на С. На теб може и да ти е ясно как ще е най-добре за проекта в дългосрочен план, но когато на опашката има още поне 5 фирми с оферти, ще ти се наложи да си преглътнеш предразсъдъците и да работиш с езици от високо ниво, колкото и да не ти харесва, само и само да имаш работа.
|
Чет Мар 05, 2020 7:02 pm |
|
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 10:53 pm Мнения: 4174 Местоположение: Brussels / Пловдив
|
Re: C++
Е то като работя за други най много веднъж-дваж да помрънкам, че то не се прави така ... и толкова Но като е за проекти където нещата зависят от мен си имам едно на ум и последните 10 години не е имало изпускане в грешна посока ...
_________________ Мразя да мразя ...
|
Чет Мар 05, 2020 7:06 pm |
|
|
slav4o.com
Ранг: Форумен бог
Регистриран на: Нед Яну 01, 2012 7:04 pm Мнения: 2581 Местоположение: Велико Търново / София
|
Re: C++
А защо не C# ? Аз сега уча C# и има страшно много неща от високо ниво. Дори може да се пише почти само функционално. И за стрингове има доста методи.
|
Чет Мар 05, 2020 7:26 pm |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10356 Местоположение: Добрич
|
Re: C++
Защото е недоразумение, като всичко от М$
|
Чет Мар 05, 2020 7:40 pm |
|
|
ToHu
Ранг: Форумен бог
Регистриран на: Нед Сеп 26, 2004 8:21 pm Мнения: 27949 Местоположение: София
|
Re: C++
|
Чет Мар 05, 2020 9:38 pm |
|
|
palavrov
Ранг: Форумен бог
Регистриран на: Вто Окт 11, 2011 10:53 pm Мнения: 4174 Местоположение: Brussels / Пловдив
|
Re: C++
C# по мое мнение е ОК като възможности на езика обаче е почти без никаква перспектива освен за поддръжка на вече направени с него проекти. И това го казвам след почти 10 години опит с .net още от бета версиите които излезнаха около 2000-та - една от най големите ми технологични издънки - да бях започнал още тогава да работя с линукс ама каквото такова.
_________________ Мразя да мразя ...
|
Пет Мар 06, 2020 10:24 am |
|
|
miro_atc
Ранг: Форумен бог
Регистриран на: Нед Фев 26, 2006 5:52 pm Мнения: 10356 Местоположение: Добрич
|
Re: C++
Всички правим грешки... И с одъртяването все повече се замисляме на тема грешки и успехи. Аз напоследък все повече разсъждавам над факторите, които водят до добър или лош резултат. Преди години отдавах голямо значение на "професионализма" и съответно на бизнеса. Все пак повечето теории в нашата област са от 30-те до 60-те години на миналия век и гледах на академичната среда (особено нашенската) като нещо през което е добре да минеш, ама важните неща в живота се случват след това. Сега си давам сметка, че това е грешно. Да, много компании като М$ правят много кинти само с "професионализъм". Но във времето по-устойчиви се оказват неща, свързани с академични среди. Не е задължително да е курсова работа на студентче, но буквално има и много такива случаи и те надживяват продукти в които са инвестирани милиарди$. Това е особено видимо в щатите, където почти всички топ разработки и топ компании работят съвместно с университети. За съжаление в Европа това не е толкова видимо, а у нас пък хич го няма.
|
Пет Мар 06, 2020 11:52 am |
|
|
HCL
Ранг: Форумен бог
Регистриран на: Вто Дек 14, 2004 12:31 pm Мнения: 3282
|
Re: C++
Ако VR/AR навлезе масово, С# няма да е никак безпреспективно имайки предвид нейтив поддръжката му в Unity.
|
Пет Мар 06, 2020 1:46 pm |
|
|