| Микроконтролери и електроника http://mcu-bg.com/mcu_site/ |
|
| C++ http://mcu-bg.com/mcu_site/viewtopic.php?f=16&t=17095 |
Страница 1 от 2 |
| Автор: | palavrov [ Чет Мар 05, 2020 1:49 pm ] | |||||||||
| Заглавие: | C++ | |||||||||
Доста време не бях пипал модерно C++ и явно съм изостанал от добавените модерности в него - а то не е като да няма, като те това направо ме облещи: User-defined literals (since C++11)
... и не мога да видя смисъла в ""_mytype и "" _print т.е. то е ясно, че може да се прави и така ама за чий ще му е на някой да осира така сорса?! |
||||||||||
| Автор: | miro_atc [ Чет Мар 05, 2020 2:14 pm ] | |||||||||
| Заглавие: | Re: C++ | |||||||||
Предполагам знаеш разликата между compile time и run time... С въвеждането на constexpr в С++ се даде възможност да се пише код, който се изпълнява compile time. Преди това беше изцяло във възможностите на компилатора. Примерно ако ти трябва дължината на стринг можеше да напишеш strlen("bla-bla") и компилаторът ще се усети, че няма нужда да вика функции. Той може да преброи символите. Но не всички компилатори са толкова добри, а и най-добрите са ограничени в това какво може да се оптимизира. Докато с constexpr вече програмиста има контрол върху това какво и как трябва да се оптимизира. Просто си овърлоадваш функцията с compile time версия и run time версия. След това при всяко викане компилатора гледа дали работиш с константи и ако да прави сметките и замества викането с резултата. Ако не - остава си викането на рън тайм версията. Това даде възможност и за друга екстра - да си ползваш литерали в сорса в една мерна единица, а те да се компилират в друга. Примерно аз работя в метрична мерна система и предпочитам константите ми да са в метри, милиметри и т.н. Но ако трябва да ги подавам на библиотека, която е в имперски мерни единици трябва да обръщам всички константи ръчно. Което е тъпо.. Но с оператор "" може да си дефинираш конверсия. Както и в твоя пример в сорса кода ползват градуси, които се компилират като радиани. Съгласи се, че е удобство |
||||||||||
| Автор: | palavrov [ Чет Мар 05, 2020 2:35 pm ] |
| Заглавие: | Re: C++ |
Е, аз заради това ""_deg го пропуснах - за него донякъде има смисъл, но останалите примери ми идват безумни. А това с constexpr наистина има смисъл за да накара компилатора да покаже грешка ако в съотвената функция не е stateless т.е. може не може да се изчисли compile time. Та това което ме изуми е добавянето на тези литерални суфикси - с тях навика да парсваш с поглед сорс не ти върши работа (то аз така и "открих" това нововъведение) т.е. ако погледнеш един сорс на модерно C++ не можеш веднага да прецениш как би се компилирал без да си прегледал и всички важящи дефиниции в дадения контекст дефинирани по напред в същият файл и в инклуднатите файлове. Да, така се пише лесно първоначално докато всичко ти е в главата но ако трябва да се пипа след време или пък да се включи нов програмист се губи сумати време само защото някой е прекалил с модерностите. |
|
| Автор: | miro_atc [ Чет Мар 05, 2020 2:51 pm ] |
| Заглавие: | Re: C++ |
Мда, с модерностите нещата лесно могат да излязат от контрол. Особено ако почнеш да работиш с шаблони... Аз се опитах да направя опростена версия на STL-a. Мога да ти кажа, че ако му погледнеш сорсовете тия примери дето даваш са като за ниво детска градина |
|
| Автор: | palavrov [ Чет Мар 05, 2020 3:54 pm ] |
| Заглавие: | Re: C++ |
Гледал съм ги навремето като излезнаха - още тогава бяха супер омотани за да вървят на различни версии и компилатори и предполагам, че едва ли са станали по четливи с времето. Последните години все повече ме мъчи дългосрочната цена на разработка на софтуер и установих, че от всичко най евтино излиза plain old C (ако може с const) където всичко е explicit и с един grep можеш да проследиш кое къде се ползва без да се налага да ползваш умно IDE. Да, изисква повече усилия в началото но с времето се изплащат многократно докато при модерните езици където всичко е implicit първоначалното време за разработка е малко, но пък след време става все по скъпо. Разбира се всеки проблем е и предимство т.е. ако пазара е ширпотреба и не се налага дългосрочна поддръжка няма смисъл да се оскъпява първоначалната разработка или пък ако си под изпълнител и ти се плаща на time & materials тогава по скъпата разработка във времето е за предпочитане - разбира се ако клиента се подлъже по привидно евтината разработка в началото. |
|
| Автор: | miro_atc [ Чет Мар 05, 2020 6:55 pm ] |
| Заглавие: | Re: C++ |
то търсенето е ключово, независимо на какво пишеш |
|
| Автор: | palavrov [ Чет Мар 05, 2020 7:44 pm ] |
| Заглавие: | Re: C++ |
търсене има колкого искаш, предлагане няма Присетих се за един стар виц: В майкрософт търсели с bing но намирали с google .... |
|
| Автор: | michev [ Чет Мар 05, 2020 8:02 pm ] |
| Заглавие: | Re: C++ |
Да продължа и аз малко оффтопика До момента като гледам, клиента избира.. т.е не избира а направо си иска минимално време за девелопмент (възможно най-ниска цена). Това със С ще ти е трудно да го постигнеш. Само си представям да имаш много обработки на стрингове и от сега те виждам как ще се метнеш от някъде ако ти се наложи да го пишеш на С. На теб може и да ти е ясно как ще е най-добре за проекта в дългосрочен план, но когато на опашката има още поне 5 фирми с оферти, ще ти се наложи да си преглътнеш предразсъдъците и да работиш с езици от високо ниво, колкото и да не ти харесва, само и само да имаш работа. |
|
| Автор: | palavrov [ Чет Мар 05, 2020 8:06 pm ] |
| Заглавие: | Re: C++ |
Е то като работя за други най много веднъж-дваж да помрънкам, че то не се прави така ... и толкова Но като е за проекти където нещата зависят от мен си имам едно на ум и последните 10 години не е имало изпускане в грешна посока ... |
|
| Автор: | slav4o.com [ Чет Мар 05, 2020 8:26 pm ] |
| Заглавие: | Re: C++ |
А защо не C# ? Аз сега уча C# и има страшно много неща от високо ниво. Дори може да се пише почти само функционално. И за стрингове има доста методи. |
|
| Автор: | miro_atc [ Чет Мар 05, 2020 8:40 pm ] | |||||||||
| Заглавие: | Re: C++ | |||||||||
Защото е недоразумение, като всичко от М$ |
||||||||||
| Автор: | ToHu [ Чет Мар 05, 2020 10:38 pm ] | |||||||||
| Заглавие: | Re: C++ | |||||||||
Точно за това ... |
||||||||||
| Автор: | palavrov [ Пет Мар 06, 2020 11:24 am ] |
| Заглавие: | Re: C++ |
C# по мое мнение е ОК като възможности на езика обаче е почти без никаква перспектива освен за поддръжка на вече направени с него проекти. И това го казвам след почти 10 години опит с .net още от бета версиите които излезнаха около 2000-та - една от най големите ми технологични издънки - да бях започнал още тогава да работя с линукс ама каквото такова. |
|
| Автор: | miro_atc [ Пет Мар 06, 2020 12:52 pm ] |
| Заглавие: | Re: C++ |
Всички правим грешки... И с одъртяването все повече се замисляме на тема грешки и успехи. Аз напоследък все повече разсъждавам над факторите, които водят до добър или лош резултат. Преди години отдавах голямо значение на "професионализма" и съответно на бизнеса. Все пак повечето теории в нашата област са от 30-те до 60-те години на миналия век и гледах на академичната среда (особено нашенската) като нещо през което е добре да минеш, ама важните неща в живота се случват след това. Сега си давам сметка, че това е грешно. Да, много компании като М$ правят много кинти само с "професионализъм". Но във времето по-устойчиви се оказват неща, свързани с академични среди. Не е задължително да е курсова работа на студентче, но буквално има и много такива случаи и те надживяват продукти в които са инвестирани милиарди$. Това е особено видимо в щатите, където почти всички топ разработки и топ компании работят съвместно с университети. За съжаление в Европа това не е толкова видимо, а у нас пък хич го няма. |
|
| Автор: | HCL [ Пет Мар 06, 2020 2:46 pm ] | |||||||||
| Заглавие: | Re: C++ | |||||||||
Ако VR/AR навлезе масово, С# няма да е никак безпреспективно имайки предвид нейтив поддръжката му в Unity. |
||||||||||
| Страница 1 от 2 | Часовете са според зоната UTC + 2 часа [ DST ] |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|