Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Наблюдая за развитием языка, я немного прихожу в ужас... Мало того, что и так не самый простой язык программирования усложняется, но еще проблема в том, что он развивается в разные стороны, которые друг другу противоречат. Сильное развитие было в сторону мета-и функционального программирования. Но первое потребует в конечном итоге compile time computation, а второе - больше динамики в языке, rtti или даже динамически типы. Ни того, ни другого нет, на чем писать в compile time не понятно... в общем, я в смятении... P. S. это все после изучения шизонутый boost any & variant... ---- Читал хинты оракла. Много думал... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 11:45 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
MasterZivв общем, я в смятении... разделится на старый и новый - в итоге два языка будет, если новый выживет - имя получит вместо цифирок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:30 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Наболело... По сабжу плюс тащемта. Думаю что мы скорее всего неизбежно получим форки. Будет несколько "плюсов". Один - старый и консервативный который будет по сути заморозкой стандарта. И будет масса экспериментальных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:37 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonНаболело... По сабжу плюс тащемта. Думаю что мы скорее всего неизбежно получим форки. Будет несколько "плюсов". Один - старый и консервативный который будет по сути заморозкой стандарта. И будет масса экспериментальных. мне даже не кажетЬся, это давно случилось. мир С++ давно смог раделит[ ]ся на консервативный STL и экспериментальный Boost. а еще реальный мир никак не выкатитЬся из ультраконсервативного понятия C with Objects - это когда используетЬся подмножество C++, из которого выкинута вся хрень что про темплейты и большая часть STL, и разрешаетЬся использовать только то базовое, что есть в любых иных ООП языках - наследование, полиморфизм, инкапсуляция, при том, что даже перегрузка операторов под запретом (такое популяризируетЬся в геймдеве), просто потому что такого нет ни в одном другом популярном языке (Java, PHP). не хочетЬся экспериментов над собственной психикой - не занимайся ими, живи свободным, и не тяни к...шки в рот, ну или не жуй и не глотай их. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonПо сабжу плюс тащемта. Думаю что мы скорее всего неизбежно получим форки. Будет несколько "плюсов". Один - старый и консервативный который будет по сути заморозкой стандарта. И будет масса экспериментальных. Очень забавно читать глубокомысленные комменты от людей, которые вообще не понимают как работает стандартизация в С++ ))) Начиная с С++11 в язык добавляется только то, что уже реализовано всеми основными вендорами компиляторов или по единогласному решению этих вендоров и еще кучи других умных людей. Поэтому никаких форков не может быть в принципе, ну разве что группа профи с форума sql.ru сделает тот самый, истинно правильный С++ . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:50 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
MasterZivНаблюдая за развитием языка, я немного прихожу в ужас...Как по мне, то все что мне нужно для "счастливого программирования" в C++ имеется. Остальное - пустая трата времени ... /хотя впрочем и не отвергаю "новшества"/. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:55 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyПоэтому никаких форков не может быть в принципе, ну разве что группа профи с форума sql.ru сделает тот самый, истинно правильный С++ . ты опять сел в лужу :) GCC имеет свои расширения языка https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html Borland/Codegear C++ имеет свои расширения http://bcbjournal.org/articles/vol1/9706/CBuilder_extensions_to_C.htm MS VC имеет свои расширения https://msdn.microsoft.com/en-us/library/34h23df8.aspx остальные взаимо несовместимые примеров форков приводить уже просто лень. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 12:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojavaGCC имеет свои расширения языка https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html Borland/Codegear C++ имеет свои расширения http://bcbjournal.org/articles/vol1/9706/CBuilder_extensions_to_C.htm MS VC имеет свои расширения https://msdn.microsoft.com/en-us/library/34h23df8.aspx Это не форки, а экспериментальные фичи, которые либо попадут в стандарт либо будут выключены, когда решение не добавлять в стандарт будет принято. Собственно я выше и сказал, что наличие таких расширений это часть процесса стандартизации. Просто не все поняли ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:05 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskynojavaGCC имеет свои расширения языка https://gcc.gnu.org/onlinedocs/gcc/C_002b_002b-Extensions.html Borland/Codegear C++ имеет свои расширения http://bcbjournal.org/articles/vol1/9706/CBuilder_extensions_to_C.htm MS VC имеет свои расширения https://msdn.microsoft.com/en-us/library/34h23df8.aspx Это не форки, а экспериментальные фичи, которые либо попадут в стандарт либо будут выключены, когда решение не добавлять в стандарт будет принято. Собственно я выше и сказал, что наличие таких расширений это часть процесса стандартизации. Просто не все поняли ))) да у вас тут блин на форуме весело. кто-то в венгерской нотации (трех столбах) дорогу не может, кто-то про якэсь чудернацьке понятия форка двигает.. что такое форк вообще, как не ответвление специфических, нестандартных фич, нну для в т.ч. экспериментальных фич? во вторых - да, чувак, пойди расскажи людям из мира C++ Builder, что __published - это просто такое нечто экспериментальное, ага, а не фундаментальная основа работы их среды разработки. угар. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:07 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyПоэтому никаких форков не может быть в принципе Ммм.. звучит как-то слишком категорично. Может на гитхабе такие форки уже и есть. (Я правда не искал пока). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:08 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojavaC++ Builder Это вообще не С++ с момента появления сего чуда. Поэтому что там у них внутри происходит мне пофиг, и к развитию языка это не имеет отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:11 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonAnatoly MoskovskyПоэтому никаких форков не может быть в принципе Ммм.. звучит как-то слишком категорично. Может на гитхабе такие форки уже и есть. (Я правда не искал пока). история знала минимум один такой пример форка https://gcc.gnu.org/egcs-1.0/c features.html но в современных реалиях подобное невозможно, в смысле группой энтузиастов. C++ стал настолько сложным и дорогим в разработке, что даже такие столпы, как Microsoft, не в силах угнаться за Clang/GCC сообществом - постепенно собираются заменить собственные реализации на... форки Clang. По сути да, Clang/C2 - это именно форк, а C++ Builder так и пошел прямым путем - свои нестандартные языковые фичи впихнул в clang форк http://docwiki.embarcadero.com/RADStudio/XE8/en/Clang-based_C _Compilers и получил с того профит. теперь им не нужно тратиться на R&D в части кодогенерации и прочей оптимизации - за них это сделают другие. но они это делают не в целях сделать лучше тебе, потребителю. они просто пытаются выдержать конкуренцию и сократить свои затраты. говоря проще - чтоб просто выжить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:18 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojavaугар. Ну вот и проспись, а то несешь пургу и на здоровую голову свою болезнь головного мозга проецирует. Форк - официальное отмежевание от тела основной разработки. C++ не имеет официальной реализации, а есть стандарт, который мерило того, что называется well-formed С++ программой. То что там борланд создал недо С++ это его личная проблема, если тебе мил __published ты можешь мило до конца жизни его использовать, но при этом твоя программа будет на Borland C++, который слабо соотносится с тем, что считается современным С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:21 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskynojavaC++ Builder Это вообще не С++ с момента появления сего чуда. Поэтому что там у них внутри происходит мне пофиг, и к развитию языка это не имеет отношения. точно! это не C++, это этот, как его, немерле! или хаскель? Anatoly MoskovskyПоэтому что там у них внутри происходит мне пофиг, и к развитию языка это не имеет отношения. твоя постоянная попытка взгромоздить на себя корону - она мягко говоря не смешна. учитывая то, что ты вряд-ли участвовал хоть в одном более-менее значимом в глобальном масштабе проекте. Модератор: nojava, утихомирься, Ты не знаешь, в чём он там участвовал, и если споришь, приводи объективные аргументы, а не переходи на личности. Плюсомёт наготове. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:22 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonНаболело... По сабжу плюс тащемта. Думаю что мы скорее всего неизбежно получим форки. Будет несколько "плюсов". Один - старый и консервативный который будет по сути заморозкой стандарта. И будет масса экспериментальных. Ну, один форк уже есть -- D. И даже два -- ещё есть старый добрый консервативный (и убогий) С. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:28 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojavaучитывая то, что ты вряд-ли участвовал хоть в одном более-менее значимом в глобальном масштабе проекте. Конечно не участвовал. Иначе мне было бы стыдно за то что я натворил, и я бы на форумах писал бы анонимно ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:28 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Анатолий Широковnojavaугар. Ну вот и проспись, а то несешь пургу и на здоровую голову свою болезнь головного мозга проецирует. Форк - официальное отмежевание от тела основной разработки. вон выше приведен пример официального форка clang - двумя компаниями - microsoft и embarcadero. так что тебе велкам в клуб сидящих в луже Анатолий Широков C++ не имеет официальной реализации, а есть стандарт, который мерило того, что называется well-formed С++ программой. То что там борланд создал недо С++ это его личная проблема, если тебе мил __published ты можешь мило до конца жизни его использовать, но при этом твоя программа будет на Borland C++, который слабо соотносится с тем, что считается современным С++. юношеский максимализм такой максимализм. и недо с++, и слабые сочетания, с сильной типизацией и лямбда замыканиями. еще какие откровения будут? отдельно, особенно порадовало про well-formed. ну да ладно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:31 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojavaмне даже не кажетЬся, это давно случилось. мир С++ давно смог раделит[ ]ся на консервативный STL и экспериментальный Boost. STL и Boost в одну дуду дудят. Мета и обобщённое программирование. Так что нет тут разделения. Разделение в другом месте -- STL/Boost и старые библиотеки типа MFC/QT/POCO/APR. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:31 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Анатолий ШироковНу вот и проспись, а то несешь пургу Не обращайте внимания, у нас завелся новый местный форумный дурачок, когда скучно, с ним весело переругиваться ))) А так-то он конечно живое подтверждение утверждения, что аноним хуже древнего грека. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:40 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
MasterZivnojavaмне даже не кажетЬся, это давно случилось. мир С++ давно смог раделит[ ]ся на консервативный STL и экспериментальный Boost. STL и Boost в одну дуду дудят. Мета и обобщённое программирование. Так что нет тут разделения. Разделение в другом месте -- STL/Boost и старые библиотеки типа MFC/QT/POCO/APR. Ну APR ты зря привел, он то никак к C++ не имеет отношения. А в остальном - http://stackoverflow.com/questions/3714167/g-without-libstdc-can-it-be-done-a-very-configurable-lightweight-libstd все печально. Нельзя сделать .cxx файл, чтоб он не был завязан на libstdc++. Т.е. stl выбросить просто нельзя. что уже говорит о многом (уровне здравости в головах стандартизаторов). в том-же C вполне себе можно обойтись без стандартной библиотеки. подобный косяк с жесткой зависимстью на RTL - для меня ставит крест и на идеи использовании Swift, действительно неплохом языке чисто внешне, но с никудышней реализацией среды выполнения на практике. разучились-то, писать софт модульно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:42 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyАнатолий ШироковНу вот и проспись, а то несешь пургу Не обращайте внимания, у нас завелся новый местный форумный дурачок, когда скучно, с ним весело переругиваться ))) А так-то он конечно живое подтверждение утверждения, что аноним хуже древнего грека. в клубе сидящих в луже появилась группа взаимоподдержки? когда кончились аргументы переходим на "дурачок, проспись, шизофреник"? да, вы так всех тут победите. два раза. или даже три :) продолжайте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:44 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojavaкогда кончились аргументы Это про корону чтоли аргументировать : ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonДумаю что мы скорее всего неизбежно получим форки. Будет несколько "плюсов". Один - старый и консервативный который будет по сути заморозкой стандарта. И будет масса экспериментальных.И что в них будет? О_о Можно хотя бы несколько пунктов назвать? И зачем делать форки кампелятера вообще, когда можно на сяхх написать вообще что угодно, не меняя кампелятер? Можно сделать вообще любую свою концепцию ООП. Да вообще можно сделать себе любую базу, оформить её как либу/шаблон/код, потом на её основе писать всё, что угодно. maytonНаболело...а вот меня уже отпустило... ^__^ nojavaC++ стал настолько сложным и дорогим в разработкене стал он сложнее, в том и прелесть. MasterZivНу, один форк уже есть -- Dфорк схх с пылесосом - не форк. -_- ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:49 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskynojavaкогда кончились аргументы Это про корону чтоли аргументировать : ))) да. почему нет? тебе это уже говорят не раз, твое ЧСВ не умиляет никого, убавляй накал-то. слово я - вообще паразит, попробуй поставить на него фильтр, для начала тогда тебя перестанут воспринимать как заносчивого, но шаблонированного зубрилку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:51 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojavaтогда тебя перестанут воспринимать как заносчивого, но шаблонированного зубрилку. А почему вы про себя во множественном числе да еще и в третьем лице? ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:54 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbnojavaC++ стал настолько сложным и дорогим в разработкене стал он сложнее, в том и прелесть. угу. ты сравни объем кода clang и gcc, по годам - и рост размера, и рост количества коммитов. репозитории то доступны. а так да, никакого роста сложности не наблюдается :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 13:54 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojavaугу. ты сравни объем кода clang и gcc, по годам - и рост размера, и рост количества коммитов. репозитории то доступны.а сам язык-то тут при чём? о_О я как писал 20 лет назад, могу в том же духе писать и сейчас. А могу и по-новому. Т.о. сложность не поменялась. все...!хватит/давайте_не устраивать оффтопные личностные какачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 14:05 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbnojavaугу. ты сравни объем кода clang и gcc, по годам - и рост размера, и рост количества коммитов. репозитории то доступны.а сам язык-то тут при чём? о_О при том, что я не говорил, что там пользователю будет сложнее или нет. я говорил про то, что прогресс не стоит на месте, появляются все более мощные оптимизации, добавляются процессоры и наборы инструкций расширяются в существующих, и прочий рост энтропии происходит. соотвественно растут затраты компаний написателей языков на просто то, чтоб догнать clang/gcc. при том что качество их реализаций оставляет желать лучшего - и по времени компиляции, и по оптимизациям и прочей эффективности - это особенно хорошо видно в jenkins, когда гоняешь многоплатформенные тесты :) потому корпоративный мир закономерно начинает мочить свои ветки реализаций, переходя на общую кодовую базу - clang. перешли бы на более развитый GCC, но там GPL висит как гиря. такое-же происходит и в мире вебстроения, скоро будет один движок для рендеринга HTML - webkit, остальное отомрет как мамонты. и это хорошо, меньше энтропии и несовместимостей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 14:35 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojava, ааа... я неправильно распарсил фразу :) ага, теперь ясно (раскрутил всё вверх по стеку) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 14:41 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbИ что в них будет? О_о Можно хотя бы несколько пунктов назвать? И зачем делать форки кампелятера вообще, когда можно на сяхх написать вообще что угодно, не меняя кампелятер? Можно сделать вообще любую свою концепцию ООП. Да вообще можно сделать себе любую базу, оформить её как либу/шаблон/код, потом на её основе писать всё, что угодно. Я просто приводил пример кода с рефлексией который пока принципиально не воспроизводим в С++. Чтобы он взлетал нужно очень много построить вокруг самого language и создать рантайм. Для С++ - это нетривиальная задача. К сожалению веб и biz-apps очень часто решают свои задачи через рефлексию. Или взять ту-же самую аналогию из JS где JSON-документ порождает сущность самой среды которая по сути есть уже инстанциированный объект и без всяких оберток. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 15:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbMasterZivНу, один форк уже есть -- Dфорк схх с пылесосом - не форк. -_- Я предлагаю его считать форком. Его создатель до этого кодил Symantec C++, потом Mars C++ e.t.c . И для меня этого достаточно. И это есть форк. Идейный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 15:27 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Модератор: nojava, между "ты не прав, потому что" и "сними корону, неуч" есть разница. Отдохни пару дней, пожалуйста. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 17:45 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Нормальный топик ведь. Давайте продолжим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 19:21 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonНормальный топик ведь. Давайте продолжим. Дык, уже все обсудили в топике "Пятничный бунт" с аналогичной сутью претензий )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.07.2016, 22:36 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
У нас был Си. Потом появился так называемый C with classes, который и стал основой для С++. Но почему появление в языке такой сущности как классы, привело к тому, что появился новый язык С++, а не к расширению языка Си? Ведь возможность разработки на Си в объектно-ориентированном стиле существовала и на тот момент, и явная сущность класса в каком-то смысле является синтаксическим сахаром. С момента появления языка С++ в нем произошло большое число изменений, но достаточно ли их для того, чтобы появился новый язык, и нужно ли это. Мне это неизвестно, но мне кажется, что по вопросу в данной теме было бы полезнее размышлять в таком ключе ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 04:58 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
А появление так называемых нелегальных 'форков', на мой взгляд связано с тем, что серьезные проекты требует не одного месяца и не одного года, однако С++ изменяется(в данном случае возможно правильно написать 'развивается', но я не могу судить) слишком быстро, потому разработчикам нужна твердая отправная точка. Ещё не вышел новый стандарт, на тот момент когда мы обсуждали модули. Вот он вышел, в нем нет модулей, но мы уже начинаем ждать их в следующем стандарте языка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 05:05 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonЯ просто приводил пример кода с рефлексией который пока принципиально не воспроизводим в С++.а, точно, никак пока нормально не реализовать. о_о ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 06:05 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
nojavaА в остальном - http://stackoverflow.com/questions/3714167/g-without-libstdc-can-it-be-done-a-very-configurable-lightweight-libstd все печально. Нельзя сделать .cxx файл, чтоб он не был завязан на libstdc++. Т.е. stl выбросить просто нельзя. Для stm32 я пишу без stl, но на ++. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. все прекрасно, главное все делать на стэке :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 06:58 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alex_k, хотя мне пришлось сделать хак: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. без этого не линкуется. хз, что это такое :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 07:07 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Книжка Саттера привела к мысли, что написать можно многое, по документации (MSDN), а правильным будет далеко не все. Т.е полно скрытых возможностей, т.е. по документации нормальных, выстрелить себе в ногу. Вряд ли это так в других языках. Я не пробовал много но на VB и С#, насколько знаю, такого нет. Для того, чтобы выдавать код, который не будет скрыто стрелять в ноги, нужно иметь неслабую голову и хорошо знать то, что скрыто глубоко под капотом. Т.е. то, во что реально разворачиваются шаблоны. Либо надо иметь книжку от таких парней по этой теме. Стоит еще и рассмотреть то, насколько удобно все это для изучения новичками. Чем больше изучать, по сравнению с другими языками, тем меньше студентов придет на этот язык, особенно при том уровне зарплат. Но даже придя, они не будут знать особенности, и будут выдавать код, не противоречащий документации, компилирующийся без предупреждений, но стреляющий по ногам. И количество их будет сокращаться. Все это не очень хорошо для развития языка. Все это повод для руководителей по разработке на плюсах подумать о том, чего им хотеть от языка в перспективе. С другой стороны, плюсы критикуют в неслабой доле за отсутствие в стандартной библиотеке каких-то фич, сетевых например. Вот их стоило бы наверное вводить, но без усложнения самого языка. Сами расширения, имхо, стоило бы вводить с минимизацией возможностей скрытой стрельбы по ногам. А еще, больше всего, в чем нуждаются плюсы, это некий механизм слежения за тем, чтобы типы данных не лазили в чужую память, и отслеживали, если кто-то залез в их память. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 08:49 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury, с++ отличается от с не только наличием классов. с++ принципиально язык со строгой типизацией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 09:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryУ нас был Си. Потом появился так называемый C with classes, который и стал основой для С++. Но почему появление в языке такой сущности как классы, привело к тому, что появился новый язык С++, а не к расширению языка Си? Ведь возможность разработки на Си в объектно-ориентированном стиле существовала и на тот момент, и явная сущность класса в каком-то смысле является синтаксическим сахаром. С момента появления языка С++ в нем произошло большое число изменений, но достаточно ли их для того, чтобы появился новый язык, и нужно ли это. Мне это неизвестно, но мне кажется, что по вопросу в данной теме было бы полезнее размышлять в таком ключепо моему, на эти вопросы есть ответы здесь . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 09:52 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
teo609А еще, больше всего, в чем нуждаются плюсы, это некий механизм слежения за тем, чтобы типы данных не лазили в чужую память, и отслеживали, если кто-то залез в их память.Не плюсы, а stl. Не всем девелоперам нужна автоматическая следилка за чужой памятью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 10:04 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Коллеги. Я долго думал и пришел к следующему. Чтобы понять отправную точку куда двигаться - нужно сначала обозначить текущие issues и недостатки. Допустим у нас есть 4 языка. С/C++/C#/Delphi Я условно ввожу для каждого из них оси характеристик. Такие как: 1. Эффективность (производительность) работы кода. Performance. Например C# будет неэффективен при взаимодействии со специфичным оборудованием (запись в порты). 2. Скорость процесса разработки (способность выдать решение за определенный срок). Например си-шарпер будет эффективен на написании общих линий бизнес-логики. Сделать CRUD, отрисовать веб страничку там или распарсить толстый XML. 3. Качество кода с точки зрения восприятия человеком. Например Delphi/Pascal имеет практическую удобную форму подачи алгоритма которая понятна даже не знающему программирование. 4. Способность к интеграции с кодом других разработок в этом-же ЯП. 5. Побочные эффекты (артефакты). 6. Неоднозначность (множественность) возможностей в API (при одинаковой постановке) Например ввод-вывод можно делать через puts, printf, cout e.t.c. 7. Порог вхождения разработчика в уровень Middle Software Developer 8. Зафиксированное количество фактов UB 9. Способность взаимодействовать с ОС Например С изначально способен вызывать ОС API, а для Delphi возможно придется разработать некий интерфейс сопряжения с нужными функциями Каждая ось имеет вещесвтенные измерения но нам для простоты хватит трех уровней. {0,1,2}. Например для эффективности это будет соответствовать статусам: НЕ ЭФФЕКТИВНО, СРЕДНЕ ЭФФЕКТИВНО, ЭФФЕКТИВНО. Далее (чуть позже) я дам расшифровку по каждому измерению. Но уровней будет три. Тоесть для оси №1 (Эффективность) точку С# я ставлю в положение 1. Тоесть си-шарп не-эффективен. Для оси №7 (Порог вхождения) я точку С++ ставлю в положение 3. Тоесть С++ имеет высокий порог вхождения для миддла. Та-же самая точка си-шарп на данной оси будет иметь положение либо 1 либо 2. Низкий или средний. Далее (чуть позже когда я нарисую таблички) я попрошу вас, коллеги проставить для известных вам языков значения измерений. Когда накопится статистика мы получим гиперкубик с измерениями. Причем значения будут вещесвтенные. Например эффективность можно будет оценивать в процентах. Вот такое вот предложение. Прошу высказываться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 12:07 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Как поднять голосование? Ну... можно в скруле создать по каждому language<=>axis отдельный топик. Или второй вариант. Я в google-docs создаю табличку (типа Excel) выдаю права мемберам и каждый ее правит проставляя цифирки или checkbox. А потом я формирую сводный отчотик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 13:52 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonКак поднять голосование? Ну... можно в скруле создать по каждому language<=>axis отдельный топик. Или второй вариант. Я в google-docs создаю табличку (типа Excel) выдаю права мемберам и каждый ее правит проставляя цифирки или checkbox. А потом я формирую сводный отчотик. Там на гугле ещё какая-то голосовалка есть, гугл - опрос... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 16:06 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
MasterZivНаблюдая за развитием языка, я немного прихожу в ужас... Мало того, что и так не самый простой язык программирования усложняется, но еще проблема в том, что он развивается в разные стороны, которые друг другу противоречат. Сильное развитие было в сторону мета-и функционального программирования. Но первое потребует в конечном итоге compile time computation, а второе - больше динамики в языке, rtti или даже динамически типы. Ни того, ни другого нет, на чем писать в compile time не понятно... в общем, я в смятении... P. S. это все после изучения шизонутый boost any & variant... ---- Читал хинты оракла. Много думал... Ну если нет ничего, то чего переживать. Можно писать на том что уже есть давно :) Мета-программирование - это в основном чтобы умные дядьки пилили сложные внутри, но снаружи простые и удобные библиотеки для использования начинающими. Жизнь в мета- значительно упростили constexpr function / constexpr if, ну и немного за счет <type_traits>. Функциональное - это как раз готовый результат для использования начинающими. Было бы неплохо, если бы можно было создавать исходники с другим расширением cppr / hppr (cpp-restricted), где с ошибкой вываливались бы все потенциально опасные моменты C++ (за исключением подключаемых обычных hpp/h-файлов): возможным множественным наследованием, reinterpret_cast и const_cast, global/static variables, использование new/delete (обойдутся make_shared/make_unique) и т.д... Ставишь хук в git чтобы ничего кроме файлов с таким разрешением залить не могли, и отрабатывала обязательная компиляция и можно сажать начинающих давить на кнопки. И был бы внутри простой и понятный C++. Или хотя бы сделали бы, чтобы все эти потенциально-опасные фичи можно было превращать в ошибки через какой-то #pragma в файле где он прописан. Или это уже возможно сейчас? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 16:51 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Почитал как реализовано создание голосования через гугло-формы. Это капец какой-то. Чуть-ли не своё ПО надо создавать. Попробовал на скруле... хреново. Скруль позволяет на 1 топик создать только одно голосование. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 16:54 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
mayton 3. Качество кода с точки зрения восприятия человеком. Например Delphi/Pascal имеет практическую удобную форму подачи алгоритма которая понятна даже не знающему программирование. это как? , можно пример ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 17:10 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
на самом деле есть 2 абсолютных показателя эффективности яп: 1)скорость написания 2)скорость чтения Большинство новых фич улучшают первое, неготивно влияя на второе. увы, всё в угоду ленивым рукожопам, которые не в состоянии реализовать класс с перегружеными операторами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 17:20 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
chritichmayton 3. Качество кода с точки зрения восприятия человеком. Например Delphi/Pascal имеет практическую удобную форму подачи алгоритма которая понятна даже не знающему программирование. это как? , можно пример Ну.. например английский язык. Если читать Delphi-алгоритм то получается почти осмысленный текст. Этим часто пользуются в учебниках по дискретной математике и теории графов при описании какой-то идеи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 17:23 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
chritichна самом деле есть 2 абсолютных показателя эффективности яп: 1)скорость написания 2)скорость чтения Есть такой тезис что программист 90% времени занят чтением текст программы. Либо документации. Я не люблю эту фразу но это "всем известно" или "очевидно". Если вы старжил форума то вы наверняка знаете студентика который кодил ультра-короткие языки. Предлагаю погуглить. Там много было сломано копий и разбито клавиатур... Мдя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 17:27 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryУ нас был Си. Потом появился так называемый C with classes, который и стал основой для С++. Но почему появление в языке такой сущности как классы, привело к тому, что появился новый язык С++, а не к расширению языка Си? Ведь возможность разработки на Си в объектно-ориентированном стиле существовала и на тот момент, и явная сущность класса в каком-то смысле является синтаксическим сахаром. С момента появления языка С++ в нем произошло большое число изменений, но достаточно ли их для того, чтобы появился новый язык, и нужно ли это. Мне это неизвестно, но мне кажется, что по вопросу в данной теме было бы полезнее размышлять в таком ключеПочитай вот эту книжку: https://www.amazon.com/gp/product/0123745144 Много-много вопросов отпадут. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 18:38 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Почему же С++ не С и таков, как есть? Я бы почитал у автора The Design and Evolution of C++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 18:43 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
И да, о "катится С++". Можно почитать, куда его хочет катить старина Бьярне... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 18:45 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
chritich1)скорость написания 2)скорость чтения Большинство новых фич улучшают первое, неготивно влияя на второе. Ну это надо еще доказать.)) Например, лямбды намного улучшают читаемость, т.к. повышают локальность кода реализующего алгоритм (в отличие от функций-колбэков). Ждем ваши примеры ухудшения читаемости (которых большинство). maytonголосование Не заморачивайтесь, все равно здесь выборка нерепрезентативная. Да и собственно нет ее, этой выборки )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 19:02 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyНе заморачивайтесь, все равно здесь выборка нерепрезентативная. Да и собственно нет ее, этой выборки )) Ничего. Я вижу аудиторию. И я буду делать в уме поправку. Но даже такие сведения для меня будут ценны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 19:14 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Попробуйте на доступ https://docs.google.com/spreadsheets/d/1s3Z3VhJWbayxhVt0Lh4HdKg5KNguJkIz0WUm89KOTgw ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2016, 19:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alex_kalex_k, хотя мне пришлось сделать хак: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. без этого не линкуется. хз, что это такое :) Обработка исключений. Запрети их и не используй. https://gcc.gnu.org/onlinedocs/libstdc /manual/using_exceptions.html ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 12:23 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonchritichпропущено... это как? , можно пример Ну.. например английский язык. Если читать Delphi-алгоритм то получается почти осмысленный текст. Этим часто пользуются в учебниках по дискретной математике и теории графов при описании какой-то идеи. хотелось бы увидеть пример кода такого алгоритма на дельфях, очень сомнительно что там текст более осмысленный чем у других. А популярность делфей среди такой аудитории связана исключительно с развитой инфраструктурой для програмирования мышкой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 15:05 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovskychritich1)скорость написания 2)скорость чтения Большинство новых фич улучшают первое, неготивно влияя на второе. Ну это надо еще доказать.)) Например, лямбды намного улучшают читаемость, т.к. повышают локальность кода реализующего алгоритм (в отличие от функций-колбэков). Ждем ваши примеры ухудшения читаемости (которых большинство). ну я ж не утверждаю, что все новые фичи -зло. А лямбды надо было добавить в стандарт еще тогда, когда туда добавили <algorithms>. Итак, абсолютное зло из нового стандарта: ключевое слово auto, скрывает имена типов, читать код становится сложнее - это очевидно. Это, своего рода,- уход от статической типизации, ведь статическая типизация - не только помогает отловить ошибки при компиляции, но и повышает читабельность кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 15:21 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
chritichИтак, абсолютное зло из нового стандарта: ключевое слово auto, скрывает имена типов, читать код становится сложнее - это очевидно. Нет. Не очевидно. И у меня обратное мнение. Таким образом ваше слово против моего. Пока не тянет на доказательство. Приведите например кусок кода, где идет цикл по итератору, и убедите меня что явное упоминание типа итератора повышает читаемость ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 15:28 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
+1 auto & lambda очень повышают читабельность. Без них вообще не вижу смысла заниматься набиванием типов по 3 раза на функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 16:03 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskychritichИтак, абсолютное зло из нового стандарта: ключевое слово auto, скрывает имена типов, читать код становится сложнее - это очевидно. Нет. Не очевидно. И у меня обратное мнение. Таким образом ваше слово против моего. Пока не тянет на доказательство. Приведите например кусок кода, где идет цикл по итератору, и убедите меня что явное упоминание типа итератора повышает читаемость ))) вот пример кода, что напечатается в поток вывода? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 17:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Siemargl+1 auto & lambda очень повышают читабельность. Без них вообще не вижу смысла заниматься набиванием типов по 3 раза на функцию. офигеть, auto оказывается ещё и повышает читабельность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 17:21 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Siemargl+1 auto & lambda очень повышают читабельность. Без них вообще не вижу смысла заниматься набиванием типов по 3 раза на функцию. Про лямбда отчасти согласен, а auto это просто попытка упростить вышедший из под контроля синтаксис. Оно конечно лучше чем typedef на каждый чих,но тут плюс как и с лямбдами - не надо ломать голову для придумывания очередного осмысленного имени. Хотя не факт что это плюс, т.к. лишний повод не задумываться что пишешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 19:18 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
critichвот пример кода, что напечатается в поток вывода? Вообще-то перегрузка/специализация функций существует, чтобы не задумываться о том какая функция вызывается, а чтобы компилятор сам вызывал нужную в зависимости от типа. Поэтому ответ на этот вопрос - напечатается содержимое объекта переданного в print. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2016, 19:54 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyПоэтому ответ на этот вопрос - напечатается содержимое объекта переданного в print. Какой-то очень оптимистичный взгляд. Лично у меня несколько раз в году печатается содержимое временного объекта, который был создан из переданного объекта. Сам конечно виноват, что ленюсь все конструкторы с одним параметром объявлять explicit. Однако auto использую только там, где тип 100% понятен из окружающего кода(итераторы и некоторые другие гораздо более редкие случаи), в остальных случаях явно прописываю тип, чтобы мне, а не компилятору, было понятно с каким классом работаем и какая перегрузка функции будет вызвана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2016, 00:16 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
critichSiemargl+1 auto & lambda очень повышают читабельность. Без них вообще не вижу смысла заниматься набиванием типов по 3 раза на функцию. офигеть, auto оказывается ещё и повышает читабельность auto повышает читаемость но снижает информативность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2016, 05:50 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SiemarglОбработка исключений. Запрети их и не используй. Отлично! Спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2016, 10:09 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
MasterZivSashaMercury, с++ отличается от с не только наличием классов. с++ принципиально язык со строгой типизацией. Это я запомнил, потому удивился сегодня, когда перечитывал BS. The C++ PL $7.4 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Finding the right version to call from a set of overloaded functions is done by looking for a best match between the type of the argument expression and the parameters (formal arguments) of the functions. To approximate our notions of what is reasonable, a series of criteria are tried in order: [1] Exact match; that is, match using no or only trivial conversions (for example, array name to pointer, function name to pointer to function, and T to c o n s t T ) [2] Match using promotions; that is, integral promotions (b o o l to i n t , c h a r to i n t , s h o r t to i n t , and their u n s i g n e d counterparts; §C.6.1), f l o a t to d o u b l e , and d o u b l e to l o n g d o u b l e [3] Match using standard conversions (for example, i n t to d o u b l e , d o u b l e to i n t , D e r i v e d * to B a s e * (§12.2), T* to v o i d * (§5.6), i n t to u n s i g n e d i n t ; §C.6) [4] Match using userdefined conversions (§11.4) [5] Match using the ellipsis ... in a function declaration (§7.6) If two matches are found at the highest level where a match is found, the call is rejected as ambiguous. The resolution rules are this elaborate primarily to take into account the elaborate C and C++ rules for builtin numeric types (§C.6). For example: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Думал, что строгая типизация в принципе не позволит такого. Но, даже если в том случае, если данные преобразования законны в рамках термина "строгая типизация", BS ранее пишет о том, что существует некий оператор reinterpret_cast. Вот, что он пишет о нем: same $6.2.7The s t a t i c _ c a s t operator converts between related types such as one pointer type to another, an enumeration to an integral type, or a floatingpoint type to an integral type. The reinterpret_cast handles conversions between unrelated types such as an integer to a pointer. This distinction allows the compiler to apply some minimal type checking for s t a t i c _ c a s t and makes it easier for a programmer to find the more dangerous conversions represented as reinterpret_casts. Some s t a t i c _ c a s t s are portable, but few r e i n t e r p r e t _ c a s t s are. Hardly any guarantees are made for reinterpret_cast , but generally it produces a value of a new type that has the same bit pattern as its argument. If the target has at least as many bits as the original value, we can r e i n t e r p r e t _ c a s t the result back to its original type and use it. The result of a r e i n t e r p r e t _ c a s t is guaranteed to be usable only if its result type is the exact type used to define the value involved. Note that r e i n t e r p r e t _ c a s t is the kind of conversion that must be used for pointers to functions (§7.7). Что значит "generally "?) Сегодня generally завтра у нас "special case". Разве из этого не следует что у С++ всё-таки слабая типизация. Или лучше сказать "не сильная типизация", или это всё-же не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 08:09 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryСегодня generally завтра у нас "special case". Разве из этого не следует что у С++ всё-таки слабая типизация Из этого - не следует ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 12:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryДумал, что строгая типизация в принципе не позволит такого. Но, даже если в том случае, если данные преобразования законны в рамках термина "строгая типизация", BS ранее пишет о том, что существует некий оператор reinterpret_cast. ... Разве из этого не следует что у С++ всё-таки слабая типизация. Или лучше сказать "не сильная типизация", или это всё-же не так? Нет, не следует. reinterpret_cast - это ... способ сказать компилятору "отвянь, я знаю что делаю" и выключить любые проверки. В любом случае, опытный программист всегда найдёт способ выстрелить себе в ногу... Так что С++ - это язык со строгой типизацией, кроме того случая (и для тех участков кода), когда вы сами сознательно заставляете его проверять поменьше. В обычной ситуации применять кувалду reinterpret_cast программисту для решения своих задач не требуется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 14:35 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySashaMercuryСегодня generally завтра у нас "special case". Разве из этого не следует что у С++ всё-таки слабая типизация Из этого - не следует ))) А из чего это следует?) Или всё-таки у С++ строгая типизация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 16:34 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryА из чего это следует?) Или всё-таки у С++ строгая типизация Что такое строгая типизация и пригодны ли языки с нею для практического использования никто не знает. Про С++ можно только сказать, что тут строже чем в С. Например нельзя из void* присваивать в другие указатели. А то, что например обратно можно, как раз и говорит что о полностью строгой типизации нет речи. Но там где реально надо - проверка равенства типов есть. Немножко даже добавили в С++11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 17:23 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury Или всё-таки у С++ строгая типизация У С++ и С строгая типизация. Строгая, статическая. То, что во время исполнения можешь по-разному трактовать участки памяти, это никак не влияет на вид типизации языка, это можно сказать такая суперфича языка -- иметь возможность интерпретировать как угодно просто любые байты памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.08.2016, 17:36 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Почему об этом ничего не сказано ни в стандарте ни в книгах BS? Вообще, нигде ничего не сказано однозначно о том, какая типизация у языка С++. Статическая? Это понятно. Но строгая или слабая мне не понятно. Я не нашел даже точного определения данных понятий. Но интуитивно я понимаю это как отсутствие возможностей неявного преобразования между типами явного небезопасного приведения типов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 02:07 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
как отсутствие возможностей неявного преобразования между типами И явного небезопасного приведения типов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 02:07 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury, язык с сильной типизацией - стрелять не годится. А Ариан-5 без сильной типизации распадется на куски. Впрочем, он и с сильной типизацией на куски таки распался. нет у этих терминов хрустальных значений. Они каучуковые - принимают форму контекста, в котором их пытаются использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 03:25 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
boobySashaMercury, язык с сильной типизацией - стрелять не годится. А Ариан-5 без сильной типизации распадется на куски. Впрочем, он и с сильной типизацией на куски таки распался. нет у этих терминов хрустальных значений. Они каучуковые - принимают форму контекста, в котором их пытаются использовать. Если это правда, то разговоры о строгой и слабой типизации языка есть разговоры о пустом месте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 04:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПочему об этом ничего не сказано ни в стандарте ни в книгах BS? Вообще, нигде ничего не сказано однозначно о том, какая типизация у языка С++. Статическая? Это понятно. Но строгая или слабая мне не понятно. Я не нашел даже точного определения данных понятий. Но интуитивно я понимаю это как отсутствие возможностей неявного преобразования между типами явного небезопасного приведения типов Саш. Да на что нам эти словесные крючкотворства. Давай подумаем. Как часто нам в коде нужно было делать кастинг (int64) -> (int) или (double) -> (int). Я не думаю что очень часто но и без этого жить нельзя. Даункастинг нужно? Нужно. И хоть обложи язык законами и поправками но программисту-то нужно делать свою работу. Главное что я, как создатель своего ПО утверждаю, что я могу преобразовать (int64) -> (int) и в данном алгоритме и я полагаю что все будет нормально. И наличие строгости или не-строгости языка не влияет на мое решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 10:48 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryboobySashaMercury, язык с сильной типизацией - стрелять не годится. А Ариан-5 без сильной типизации распадется на куски. Впрочем, он и с сильной типизацией на куски таки распался. нет у этих терминов хрустальных значений. Они каучуковые - принимают форму контекста, в котором их пытаются использовать. Если это правда, то разговоры о строгой и слабой типизации языка есть разговоры о пустом месте можно иногда википедию глянуть. Там как откровенный мусорные статьи бывают (когда химики и географы про базы данных рассуждают), так и вполне годный. При типизацию в русской версии +- годный текст. Для начала - уж точно https://ru.wikipedia.org/wiki/Сильная_и_слабая_типизация ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 11:01 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonSashaMercuryПочему об этом ничего не сказано ни в стандарте ни в книгах BS? Вообще, нигде ничего не сказано однозначно о том, какая типизация у языка С++. Статическая? Это понятно. Но строгая или слабая мне не понятно. Я не нашел даже точного определения данных понятий. Но интуитивно я понимаю это как отсутствие возможностей неявного преобразования между типами явного небезопасного приведения типов Саш. Да на что нам эти словесные крючкотворства. Давай подумаем. Как часто нам в коде нужно было делать кастинг (int64) -> (int) или (double) -> (int). Я не думаю что очень часто но и без этого жить нельзя. Даункастинг нужно? Нужно. И хоть обложи язык законами и поправками но программисту-то нужно делать свою работу. Главное что я, как создатель своего ПО утверждаю, что я могу преобразовать (int64) -> (int) и в данном алгоритме и я полагаю что все будет нормально. И наличие строгости или не-строгости языка не влияет на мое решение. Марк, дело в том, что в случае, если мы наверняка знаем что язык обладает строгой типизацией, то это автоматически даёт нам гарантию отсутствия определенных нежелательных видов поведения и как следствие значительно упрощает разработку. А первоначально я подумал, что Илья обозначил различие между Си и С++ в виде строгой типизации, но видимо я не так его понял. booby, простите, но информация на той странице мне не понравилось, отсутствуют источники. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 12:36 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryМарк, дело в том, что в случае, если мы наверняка знаем что язык обладает строгой типизацией, то это автоматически даёт нам гарантию отсутствия определенных нежелательных видов поведения и как следствие значительно упрощает разработку. А первоначально я подумал, что Илья обозначил различие между Си и С++ в виде строгой типизации, но видимо я не так его понял. Для тех кто которые кодили на Ассемблере вообще таких вопросов не возникает. Для асма типично что тип данных - это просто призма сквозь которую мы смотрим на сырую memory. К примеру QWORD можно рассматривать как пару DWORD и также применять к нему либо арифм операцию класса QWORD либо векторную операцию над двумя WORDS. Или знаковые-беззнаковые типы как таковые даже не существуют. Это просто семантика операций над регистрами. И сам по себе cast приобретает другой смысл. Разыменовать кусок памяти для другого типа или слегка преобразовать raw-data и еще раз разыменовать. Вобщем я хочу сказать - не парься. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 12:49 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Фундамент любого языка - система типов. Если я не буду понимать фундамент, то никогда не пойму С++. Возможно смогу применять к решению каких-то задач, но это не самое главное. Мне хочется понимать этот язык ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 13:00 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryФундамент любого языка - система типов. В С++ типы важны только для реализации полиморфизма. В остальных случаях это просто контроль криворукости программиста. Скорее штукатурка, а не фундамент ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 13:06 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySashaMercuryФундамент любого языка - система типов. В С++ типы важны только для реализации полиморфизма. В остальных случаях это просто контроль криворукости программиста. Скорее штукатурка, а не фундамент Основная причина появления данного языка как нового языка, это появление пользовательских типов данных - классов. Серьезные изменения в системе типов языка привели к появлению нового языка. Разве это не так? Что-же по вашему является фундаментом С++ ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 13:14 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryОсновная причина появления данного языка как нового языка, это появление пользовательских типов данных - классов. Нет, это не причина, а следствие. SashaMercuryЧто-же по вашему является фундаментом С++ ? * работа на низком уровне (указатели и тп) * поддержка ООП в синтаксисе * автоматизация рутинных действий программиста (RAII, шаблоны, лямбды, исключения) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 14:05 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySashaMercuryОсновная причина появления данного языка как нового языка, это появление пользовательских типов данных - классов. Нет, это не причина, а следствие. SashaMercuryЧто-же по вашему является фундаментом С++ ? * работа на низком уровне (указатели и тп) * поддержка ООП в синтаксисе * автоматизация рутинных действий программиста (RAII, шаблоны, лямбды, исключения) мое скромное мнение здесь так стоит: Это уже не фундамент, а а-ля "операционный скелет" языка. Фундамент будет тем же самым, что и у Fortran, COBOL и Basic - императивная модель вычисления, настаивающая на том, что состояние - существенная часть самого вычисления, и поставленная поверх операции присваивания, l-value и r-value. Из этого фундамента типизация вытягивается клещами в любом полюбившемся направлении. как-то так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 15:00 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryФундамент любого языка - система типов. Если я не буду понимать фундамент, то никогда не пойму С++. Возможно смогу применять к решению каких-то задач, но это не самое главное. Мне хочется понимать этот язык Фундамент любого здания это то, что скрыто от внешнего наблюдателя\потребителя В данном случае - это свободный и примитивный язык машинных команд. Хочешь просмотреть "фундамент" С++ - изучай ассемблер типизация - это дверь, которая позволяет входить и выходить не ломая стены приведение типов - это окна, которые позволяют свету проникать внутрь предметы обихода - это ООП крыша - это шаблоны поймёшь ассемблер - увидишь всё как Нео в Матрице тебе какую таблетку ??? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 16:29 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySashaMercuryОсновная причина появления данного языка как нового языка, это появление пользовательских типов данных - классов. Нет, это не причина, а следствие. Не очень понял. Рассуждаю так, язык Си развивался, Сообщество программистов требовало перемен(а BS хотел PhD), но эти перемены был настолько серьезны, что было принято решение о создании С++. Язык, в котором на уровне синтаксиса реализована работа с классами, работа с которыми и определило его дальнейшее развитие Anatoly MoskovskySashaMercuryЧто-же по вашему является фундаментом С++ ? * работа на низком уровне (указатели и тп) * поддержка ООП в синтаксисе * автоматизация рутинных действий программиста (RAII, шаблоны, лямбды, исключения) Анатолий, но где были бы указатели, если бы система типов языка не подразумевала составные типы, частным случаем которых являются указатели. Ладно, вы безусловно знаете в разы больше, и я не в коем случае не претендую. Но всё-же мне кажется, эти вопросы очень важны. Меня гонят уже спать( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 17:04 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryАнатолий, но где были бы указатели, если бы система типов языка не подразумевала составные типы, частным случаем которых являются указатели. Я не говорю что типы не важны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 17:14 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryПочему об этом ничего не сказано ни в стандарте ни в книгах BS? Вообще, нигде ничего не сказано однозначно о том, какая типизация у языка С++. Статическая? Это понятно. Но строгая или слабая мне не понятно. Потому что эти понятия не очень строго определены. В С статическая строгая. В С++ то же самое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 19:57 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
boobySashaMercuryпропущено... Если это правда, то разговоры о строгой и слабой типизации языка есть разговоры о пустом месте можно иногда википедию глянуть. Там как откровенный мусорные статьи бывают (когда химики и географы про базы данных рассуждают), так и вполне годный. При типизацию в русской версии +- годный текст. Для начала - уж точно https://ru.wikipedia.org/wiki/Сильная_и_слабая_типизация Фуфло там написано. Читай хотя бы английский вариант этой же статьи. Ни разу в жизни не использовал reinterpret_cast, т.к. сишное приведение типа короче при том же результате. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 21:01 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Siemarglboobyпропущено... можно иногда википедию глянуть. Там как откровенный мусорные статьи бывают (когда химики и географы про базы данных рассуждают), так и вполне годный. При типизацию в русской версии +- годный текст. Для начала - уж точно https://ru.wikipedia.org/wiki/Сильная_и_слабая_типизация Фуфло там написано. Читай хотя бы английский вариант этой же статьи. Ни разу в жизни не использовал reinterpret_cast, т.к. сишное приведение типа короче при том же результате. Там написаны вполне правильные вещи, кроме того, что в С/С++ слабая типизация. (Начиная со слов "Например, яркими примерами слабой системы ..." и далее). P.S. "сишное приведение типа короче при том же результате" -- нет, результат далеко не тот же. Хотя бы reinterpret_cast можно легко искать в тексте программы поиском. Только за это его уже нужно использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 21:09 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Я поясню, почему там написана хрень в отношении С/С++. Во-первых, потому что их объединяют, а это в принципе неправильно. С++ гораздо более строк с типами. Во-вторых, потому что рассуждают о reinterpret_cast и им подобных вещах с точки зрения типов данных языка программирования, хотя очевидно, что по сути это -- средства языка, позволяющие оперировать непосредственно байтами памяти, и не имеющие к типам данных почти никакого отношения. По сути эти средства -- это такой особый встроенный ассемблер, которым если нужно можно напрямую обрабатывать память любым образом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 21:14 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Siemargl, По степени внятности английская версия а) не превосходит русскоязычную (это я тебе как бывший писатель на Visual Basic рассказываю) б) не противоречит русскоязычной текстуально в) уступает русскоязычной версии в следующих отношениях: -- англоязычная версия просто упоминает о том, что лучше было бы не использовать эти плохо определенные понятия, заменяя их по месту сходными с устоявшимся смыслом, а русскоязычная, в отличие от, дает представления о времени и контексте, в которых такие и сякие авторы пытались придать этим словам смысл технических терминов. Что дает объемное представление о степени успешности этих попыток. -- По вышеуказанной причине (давая намек на историю) русская версия дает, имхо, лучшее представление о причинах повторения таких попыток, источниках, заставляющих авторов высказываться в терминах силы и слабости. Английская версия, не давая даже намека на генезис, может приводить к ошибочному предположению об обычном слабоумии этих самых авторов (т.е., по ходу, ru еще и с большим уважением к существу вопрос описывает, чем en). SiemarglНи разу в жизни не использовал reinterpret_cast, т.к. сишное приведение типа короче при том же результате. Ну, прекрасно это, - здорово. Я reinterpret_cast тоже в жизни ни разу не использовал. Правда, по другой причине - я ни разу в жизни ни C, ни C++ не использовал Факт не использования может быть как-то связан с выявлением силы или слабости типизации в этих языках? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 22:40 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
boobyПравда, по другой причине - я ни разу в жизни ни C, ни C++ не использовал Анафема! Гнать тебя отсюда! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 22:45 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
mayton, и вам не хворать, а вообще - приятно, что не перевелись еще на свете лыцари, готовые кого-то куда-то гнать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 22:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
booby, Если не использовал, то твое суждение о тонкостях, увы, бесполезно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 23:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
[quot MasterZiv]Siemargl... Там написаны вполне правильные вещи, кроме того, что в С/С++ слабая типизация. (Начиная со слов "Например, яркими примерами слабой системы ..." и далее). ... имхо, существо дела здесь может быть изложено в терминах безопасности по отношению к прострелу собственной ноги. Языки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией. Языки оставляющие тебе возможность пораниться, или даже изувечиться - языки со слабой типизацией. Языки со слабой типизацией претендуют на то, чтобы быть инструментом. Вот чем они оказываются - боевой секирой, набором кухонных ножей или швейцарским ножем, на все годным, но, может быть, одинаково плохо - требует отдельного изучения в конкретном случае. Языки с сильной типизацией - картонки для доширака. Пораниться ими почти гарантированно нельзя, но и полезное для организма - маловероятно что получится. Касательно использовал-не использовал. Ножа бояться - на кухню не ходить. Это профессия такая - быть поваром. Есть повара, для которых есть фугу собственного приготовления - особая профессиональная честь, требующая и специального обучения и специального допуска. Я бы не переживал за слабую типизацию, предлагаю и тебе на нее дышать ровнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 23:27 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Siemarglbooby, Если не использовал, то твое суждение о тонкостях, увы, бесполезно. Не надо так расстраиваться. Просто формируй сам свое суждение, по возможности к самому себе относясь с уважением. Не гонись за силой типизации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 23:30 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
КМК в сях есть нерешенные вопросы касательно строковых типов. И на фоне них все остальные (примитивные типы) - вполне себе решены. Что-то топик у нас не в ту степь пошел. Неужели темы поинтереснее нет? Что на пятницу поднять? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 23:43 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
boobyЯзыки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией. Языки оставляющие тебе возможность пораниться, или даже изувечиться - языки со слабой типизацией. Языки со слабой типизацией претендуют на то, чтобы быть инструментом. Вот чем они оказываются - боевой секирой, набором кухонных ножей или швейцарским ножем, на все годным, но, может быть, одинаково плохо - требует отдельного изучения в конкретном случае. Извините, но нет. Типизация никакого отношения к безопасности не имеет. Потому что следующий код выстреливает в ногу при полной поддержке строгой типизации. Код: plaintext 1. 2. Безопасность зависит от уровня абстракции, а не от строгости типов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 23:56 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonЧто на пятницу поднять? Эль неплохо идет )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.08.2016, 23:58 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
имеет. Anatoly Moskovsky... Безопасность зависит от уровня абстракции ++ Это главный мотив. Безусловная точка старта. Anatoly Moskovsky а не от строгости типов. система типов - существенная часть определения набора абстракций, с которым имеет дело программист. причем, даже "декларативный", которому и слышать-то об этом не хотелось бы, а приходится как-то выкручиваться - совпало оно там с образцом или нет. Проблематичность терминов сорта силы и слабости, имхо, кроется в проблематичности определения самой опасности. Когда a_type a = a_type Op(a_type b, a_type c) то "наверно" это безопасно. а когда a_type a = op_type Op(b_type b, c_type c) то сознание начинает плыть и от этого становится опасно на душе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 00:15 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky... Типизация никакого отношения к безопасности не имеет. Потому что следующий код выстреливает в ногу при полной поддержке строгой типизации. Код: plaintext 1. 2. ... Не для назойливости, а для порядка - у этого кода нет шансов прострелить чью-либо ногу на этапе выполнения. Т.к. при полной поддержке строгой типизации он обязан проваливаться на этапе компиляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 00:52 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
[quot booby]MasterZivпропущено... имхо, существо дела здесь может быть изложено в терминах безопасности по отношению к прострелу собственной ноги. Языки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией. Языки оставляющие тебе возможность пораниться, или даже изувечиться - языки со слабой типизацией. Языки со слабой типизацией претендуют на то, чтобы быть инструментом. Вот чем они оказываются - боевой секирой, набором кухонных ножей или швейцарским ножем, на все годным, но, может быть, одинаково плохо - требует отдельного изучения в конкретном случае. Языки с сильной типизацией - картонки для доширака. Пораниться ими почти гарантированно нельзя, но и полезное для организма - маловероятно что получится. Касательно использовал-не использовал. Ножа бояться - на кухню не ходить. Это профессия такая - быть поваром. Есть повара, для которых есть фугу собственного приготовления - особая профессиональная честь, требующая и специального обучения и специального допуска. Я бы не переживал за слабую типизацию, предлагаю и тебе на нее дышать ровнее. Ты абсолютно не понимаешь основ, в пытаешься оперировать аналогиями. Просто напиши определения, что ты понимаешь как строгую типизацию, а что - как слабую. И тогда будет что обсуждать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 01:24 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Siemargl, Дважды странное желание получить от меня определение. во первых, по незнанию мной основ. во вторых, казалось бы - ясно мое необразованное мнение прозвучало - термин не имеет технического значения, как раз по причине отсутствия для него признанного и формально используемого определения. Иначе как методом оперирования аналогиями - нет способа об этом рассуждать. вот первоначальное мимолетное, описательное употребление сильного, без упоминания слабого от Карделли: авторHence, typeful programming advocates static typing, as much as possible, and dynamic typing when necessary; the strict observance of either or both of these techniques leads to strong typing, intended as the absence of unchecked run-time type errors. Есть желание обсуждать варианты его перевода и их трактовки ? Вот нечто "уточняющее" от Лисков: The language is strongly typed; thus there are only three ways in which an abstract object can be used: i. An abstract object may be operated upon by the operations which define its abstract type. 2. An abstract object may be passed as a parameter to a procedure. In this case, the type of the actual argument passed by the calling procedure must be identical to the type of the corresponding formal parameter in the called procedure. 3. An abstract object may be assigned to a variable, but only if the variable is declared to hold objects of that type. Здесь акцент сделан на присвоении и передаче параметров. Про операции сказано, что они должны быть заявлены на типе. - не шибко густо. От автора добавлено, чтобы прояснить операции - мол не надо числа с буквами складывать (никакого воодушевления). Siemargl, вот тебе, как человеку знакомому с основами - прилично было бы и определения явить и пояснения к ним дать. А не от меня, невежды, ждать - чего бы тебе пообсуждать. Особенно, если в русской статье чепуха написана от того, что ты reinterpret_cast не используешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 02:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SiemarglЕсли не использовал, то твое суждение о тонкостях, увы, бесполезно.не обязательно быть пекарем, чтобы понять, вкусный хлеб или нет kealon(Ruslan)тебе какую таблетку ??? :-)большую! о_О maytonЧто на пятницу поднять?агасити весь спск а есть из чего выбрать? Мне интересно c11/14, отличия/преимущества/недостатки/тонкости/подводные_камни этих редакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 05:13 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
booby, Вот определение от Карделли верное. Теперь попробуй применить его к С++ и понять, почему в русской версии статьи написан бред про С++ со слабой типизацией (а в английской, как ни странно, нет этого утверждения). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 11:44 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
[quot booby]MasterZivпропущено... имхо, существо дела здесь может быть изложено в терминах безопасности по отношению к прострелу собственной ноги. Языки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией. "сильность" типизации в языке к возможности прострела себе ноги никак не относится. К тому же "возможность прострела себе ноги" -- крайне неформальное понятие, а уровень типизации по крайней мере стремиться хоть как-то формализоваться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 12:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Siemarglbooby, Вот определение от Карделли верное. Теперь попробуй применить его к С++ и понять, почему в русской версии статьи написан бред про С++ со слабой типизацией (а в английской, как ни странно, нет этого утверждения). ДА там просто всё, "почему" шито нитками белыми -- функциональщики статью писали. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 12:20 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
boobyAnatoly Moskovsky... Типизация никакого отношения к безопасности не имеет. Потому что следующий код выстреливает в ногу при полной поддержке строгой типизации. Код: plaintext 1. 2. ... Не для назойливости, а для порядка - у этого кода нет шансов прострелить чью-либо ногу на этапе выполнения. Т.к. при полной поддержке строгой типизации он обязан проваливаться на этапе компиляции. В общем случае такое можно отследить только в рантайме. Что на практике означает падение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 16:44 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Надо вводить коэффициент скорострельности по ногам . Расчитывать экспертно. Голосованием. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 16:49 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyВ общем случае такое можно отследить только в рантайме. Что на практике означает падение. исключение - выход за границу массива, а не повреждение чужой памяти, хотя я слышал, что нормальные массивы в с++ не нужны, ибо каждый дятел может написать свою реализацию ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 17:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропилисключение - выход за границу массива, а не повреждение чужой памяти, Какая разница? К типизации это не имеет отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.08.2016, 18:27 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyboobyЯзыки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией. Языки оставляющие тебе возможность пораниться, или даже изувечиться - языки со слабой типизацией. Языки со слабой типизацией претендуют на то, чтобы быть инструментом. Вот чем они оказываются - боевой секирой, набором кухонных ножей или швейцарским ножем, на все годным, но, может быть, одинаково плохо - требует отдельного изучения в конкретном случае. Извините, но нет. Типизация никакого отношения к безопасности не имеет. Потому что следующий код выстреливает в ногу при полной поддержке строгой типизации. Код: plaintext 1. 2. Вы хитрец C: Что же тогда можно сказать про этот пример?) Увидим мы на потоке вывода приветствие с вами?) Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 01:51 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Марк, сегодня можно создать пятничную тему или у вас что-то другое заготовлено? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 09:23 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercury, пожалуйста создавай. Я не претендую на эксклюзив. Можно две пятничных. Я сегодня хотел написать о со-программах (co-routines) и об их имплементациях в разных ЯП. Но еще не собрал материала. Пока - только соображения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 11:23 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SashaMercuryЧто же тогда можно сказать про этот пример?) А зачем вам это знать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 11:51 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskySashaMercuryЧто же тогда можно сказать про этот пример?) А зачем вам это знать? я так и знал, что вы так ответите:D ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.08.2016, 12:58 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
О том каким был C и каким стал C++ [spoiler] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 19:22 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012О том каким был C и каким стал C++ [spoiler] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.08.2016, 20:28 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
В начале писали о неподъемности Boost, могу сказать что не залезая в исходники этих библиотек можно спокойно продолжать программировать с их использованием, но когда понимаешь, что не понимаешь как работает например Spirit, когда любопытно и медитируешь на Proto, тогда да, понимаешь что в этом языке есть куда расти, и что изучать. Помните, чем больше я изучаю С++ тем меньше я понимаю С++? Реально не хватает экосистемы, простых и удобных фреймворков, но есть конечно надежда что всё измениться, и тогда-то я перестану кодить на Scala (да, я уже запланировал комбэк), и вернусь обратно, и будет уже совершенно другое кодовство, будет ФП по жесткой схеме, а не только макро-магия прекомпила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 17:08 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
народ, чем отличаеются темы "В какую сторону движется C++?" от "Куда катится C++" ? :) или я чего-то не догнал? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 19:04 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alexy_black, В одном оптимисты, в другом — пессимисты, Которые как известно просто хорошо информированные оптимисты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 20:33 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропил, гы, какая животрепещющая тема )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.08.2016, 20:48 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alexy_blackнарод, чем отличаеются темы "В какую сторону движется C++?" от "Куда катится C++" ? :) или я чего-то не догнал? Да. Топики действительно похожи. Но насколько я понял месседж. MasterZiv считает что развитие С++ стоит на распутье. Создатели не могут развивать одновременно два направления. ФП и мета-программинг. Я-бы голосовал за ФП т.к. считаю что у него больше возможностей и он интереснее. Мета-кодинг исчерпал сам себя. Мы уже больше ничего высосать из него не можем. Осталось постулировать понятие ЧИСЛА через шаблоны и определить базовые алгебры. Есть в этом какой-то философский тупик. Получается что С++ ники каг-бе решают фундаментальные проблемы которые по принципиально отсутствуют к примеру в Delphi. Или подобно космомольцам сами создают себе трудности которые решают. Но каково бизнес-value шаблонов - никто сказать не может. Или не может провести исследование и доказать что шаблоны очень сильно необходимы бизнесу. Скорее всего это просто игры разума. Как-то так. По сабжу я не являюсь шаблоно-хейтером. Я просто инженер который искренне удивляется умению других инженеров создавать себе трудности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.09.2016, 23:42 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonНо каково бизнес-value шаблонов - никто сказать не может. Или не может провести исследование и доказать что шаблоны очень сильно необходимы бизнесу.мне шаблоны реально сокращают рутинный код в разы. Можно теперь сказать, что шаблоны необходимы бизнесу? ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 00:10 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
egorychmaytonНо каково бизнес-value шаблонов - никто сказать не может. Или не может провести исследование и доказать что шаблоны очень сильно необходимы бизнесу.мне шаблоны реально сокращают рутинный код в разы. Можно теперь сказать, что шаблоны необходимы бизнесу? ;-) Нет, теперь должен провести исследование и доказать Вот то-то же, ждет философский тупик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 00:26 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonЯ-бы голосовал за ФП т.к. считаю что у него больше возможностей и он интереснее.Вот сижу, думаю. А чего нам в С++ сейчас не хватает чтобы использовать ФП? И прихожу к выводу что уже сейчас все есть. Тут надо не язык развивать, а программистов обучать. Что такое ФП? Это ж всего-навсего полный запрет обращаться к переменным из внешней области видимости. И все. Получила функция на вход переменную, обработала, отдала результат другой функции ... и так пока не решим всю задачу. Как ни странно, но ФП не подразумевает полную имплементацию лямбда-исчисления. maytonМета-кодинг исчерпал сам себя.Вот если хочешь полноценное лямбда-исчисление получить тогда и мета-программирование понадобится, иначе абстракции сделать не получиться. Впрочем тут я не уверен на все сто. Просто я как зачет сдал по лямбдам, так и забыл их... maytonНо каково бизнес-value шаблонов - никто сказать не может. Или не может провести исследование и доказать что шаблоны очень сильно необходимы бизнесу.Шаблоны могут быть слегка полезны как заменитель вариантных типов. Этакое решение для бедных и только на этапе компиляции. Но и все. maytonПо сабжу я не являюсь шаблоно-хейтером. Я просто инженер который искренне удивляется умению других инженеров создавать себе трудности.Поздно. Тебя уже записали :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 00:39 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
egorychmaytonНо каково бизнес-value шаблонов - никто сказать не может. Или не может провести исследование и доказать что шаблоны очень сильно необходимы бизнесу.мне шаблоны реально сокращают рутинный код в разы. Можно теперь сказать, что шаблоны необходимы бизнесу? ;-)Мне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 00:40 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами. Самый простейший пример: std:string и std::wstring код которых без шаблонов пришлось бы продублировать, а так это просто две строки с typedef и один общий шаблон. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 01:48 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами. Если клянетесь не воровать! :) Код: plaintext 1. 2. 3. 4. 5. 6. Использование Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Использование тоже можно было бы щаблонизировать, но пока копипаст :) Появится еще один тип игровых объектов - методы find... и fill... останутся теми же. Но на этапе компиляции будут предъявлены определенные требования к новому типу игровых объектов. Не забалуешь :) И вообще - очень много где используем. Если есть копипаст - надо подумать как применить шаблоны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 05:22 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонамида std::vector же, иначе пришлось бы или каждый раз делать работу с массивом данных, или организовывать свою иерархию, как это делается в классических примерах про виртуальные функции в с++ alex_kЕсли клянетесь не воровать! :)"мы украли твою идею, теперь станем миллионерами" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 05:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlmaytonЯ-бы голосовал за ФП т.к. считаю что у него больше возможностей и он интереснее.Вот сижу, думаю. А чего нам в С++ сейчас не хватает чтобы использовать ФП? И прихожу к выводу что уже сейчас все есть. Тут надо не язык развивать, а программистов обучать. Что такое ФП? Это ж всего-навсего полный запрет обращаться к переменным из внешней области видимости. И все. Получила функция на вход переменную, обработала, отдала результат другой функции ... и так пока не решим всю задачу. Как ни странно, но ФП не подразумевает полную имплементацию лямбда-исчисления. Ну... прежде всего надо формализовать список в понимании ФП. И дать возможность толкать в него микс из типов. А это требует RTTI. То о чем говорил Илья. Такое должно работать. Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 08:33 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlШаблоны могут быть слегка полезны как заменитель вариантных типов. Этакое решение для бедных и только на этапе компиляции. Но и все. Если рассматривать std::vector, std::map - как набор алгоритмов "над ccылками" (опять гребаный RTTI) то нам шаблонизация и не очень нужна. Возможно имеет смысл оценить контракты "сравнения" и "хеширования" двух объектов а это ближе к интерфейсам чем к шаблонам. Вобщем взять курс на пересмотр необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 08:53 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
я ещё вспомнил примерчик, модульная надстройка над классами. Код: plaintext 1. 2. 3. 4. и куча других прикольных веществ вещей от Александреску ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 10:51 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами.ничего военного. Добавление справочника в главное меню. Создать QAction, добавить его в главное меню, написать для него слот. Шаблоном это делается в одну строку, без шаблона - 7 строк для каждого справочника. Справочников - порядка 50 на приложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 11:05 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
mayton, спасибо :) мне кажется, что это не мешает друг другу... ну dynamic_cast никак не мешает тому, что есть шаблоны, а шыблоны никак не мешают тому, что есть dynamic_cast.. чтобы убрать шаблоны, у всех классов и, возможно, функций, должен быть один общий суперкласс.. лучшу уж шаблоны :) а то придется от вектора димамокастить в нужный тебе класс.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 13:38 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonТакое должно работать. Код: plaintext 1. Пожалуйста Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 13:57 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alexy_blackлучшу уж шаблоны Вы так говорите, как будто шаблоны это что-то плохое, и мы вынуждены их терпеть, потому что без них еще хуже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 13:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alexy_blackmayton, спасибо :) мне кажется, что это не мешает друг другу... ну dynamic_cast никак не мешает тому, что есть шаблоны, а шыблоны никак не мешают тому, что есть dynamic_cast.. чтобы убрать шаблоны, у всех классов и, возможно, функций, должен быть один общий суперкласс.. лучшу уж шаблоны :) а то придется от вектора димамокастить в нужный тебе класс.. С шаблонами (compile time polymorphism) при несоответствии типов будет ошибка компилятора, а без шаблонов с RTTI (runtime polymorphism) не будет ошибки компилятора. Очевидно же что RTTI лучше, т.к. нет ошибки Вообще компилятора не должен выдавать ошибки, тогда все программы будут правильными. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 14:20 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alexy_blackdynamic_cast делает runtime check. Это работа процессора, которую можно было бы избежать, делая проверки на этапе компиляции. Работа процессора, к стати, это потраченная электроэнергия. Единственный способ процессору потратить электроэнегрию - выделить тепло. Ну а тепло будет рассеяно во вселенной, увеличивая энтропию. dynamic_cast увеличивает энтропию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 14:43 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alex_kalexy_blackdynamic_cast делает runtime check. Это работа процессора, которую можно было бы избежать, делая проверки на этапе компиляции. Работа процессора, к стати, это потраченная электроэнергия. Единственный способ процессору потратить электроэнегрию - выделить тепло. Ну а тепло будет рассеяно во вселенной, увеличивая энтропию. dynamic_cast увеличивает энтропию!да, я об этом же :) поэтому считаю шаблоны полезными - без них все будет в рантайме, а это не гуд. я за мир во всем мире и за чистую экологию! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 15:14 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alexy_blackя за мир во всем мире и за чистую экологию!Можно и "лучше" сказать. "Трахтор в поли дыр, дыр, дыр. Мы за мыр! Мы за мыр!" /Павло Тычына/ PS: Ни кто не против STL и template. Разве кто-то утверждал обратное? ИМХНО мне этот подход и его реализация не нравится. Но из этого абсолютно не следует, что их использовать не буду. Буду - когда посчитаю уместным ... Такой же подход у любого из форумчан ... Что обсуждаете то и что друг другу доказываете /и пытаетесь убедить/? Нет еще "идеального" языка программирования и не только ... ИМХНО самая большая польза от этого и других форумах может быть лишь в том, чтобы научиться не хамить, настаивать на своем, уважать мнение других, ... Остальное ... ... ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 17:18 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012, да, мне тоже не нравится.. или я двже не знаю как к этому относится :) вот например строка. с одной стороны, я бы хотел, чтобы это был набор символов, но это не так. то есть в плюсах std::string - это контейнер char, но символы не влезают в char.. то есть иногда std::string::size не равно кол-ву букв в слове, там хранящимся. с другой стороны, это как посмотреть: для работы со строками, есть потоки, а это просто контейнер в памяти, поэтому без раницы что у него там что-то не влезает, и хорошо, что я могу управлять где он хранит - больше гибкости. и срзу куча вопросов для работы со строкам: символ ударения, например, это символ, но люди воспринимают его как часть буквы. то есть слово из пяти букв плюс ударение - это шесть символов для компа, но почти любой скажет, что это пять букв.. естественно одним универсальным подходом тут не обойдешься. поэтому мне нормально, что это сделано на шаблонах. а для подсчета и операций, можно использовать, например, подход boost.locale - там нужно указать что ты хочешь получить, кол-во символов, слов и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 17:37 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами. Anatoly MoskovskyСамый простейший пример: std:string и std::wstring код которых без шаблонов пришлось бы продублировать, а так это просто две строки с typedef и один общий шаблон.ммм... может быть. Однако мне как пользователю библиотеки абсолютно до лампочки как именно организован код внутри библиотеки, даже если там будет полноценный копи-паст. До тех пор пока библиотека работает мне не важно сколько там строк внутри. А когда я пишу собственный класс для строк, я его делаю на основе юникода (с наследованием от ICU) и никакие std::w?string мне не нужны вообще. alex_kЕсли клянетесь не воровать! :)Не вижу в приведенном примере проверки типов на этапе компиляции. Зато проверку типов в рантайме вижу. Не засчитано. CEMbда std::vector же, иначе пришлось бы или каждый раз делать работу с массивом данных, или организовывать свою иерархию, как это делается в классических примерах про виртуальные функции в с++Угу. Работа со списками это пожалуй единственное более-менее оправданное использование шаблонов. egorychничего военного. Добавление справочника в главное меню. Создать QAction, добавить его в главное меню, написать для него слот. Шаблоном это делается в одну строку, без шаблона - 7 строк для каждого справочника. Справочников - порядка 50 на приложение. Уточни, что есть "справочник" в данной задаче? У меня в качестве справочников всегда используются различные варианты хешей/мапов со строковыми ключами и комментариями. Ни разу не видел нужды их унифицировать на основе шаблонов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 18:09 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonНу... прежде всего надо формализовать список в понимании ФП. И дать возможность толкать в него микс из типов.Зачем??? У тебя есть хоть одна задача требующая списка переменных разных типов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 18:12 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlУ тебя есть хоть одна задача требующая списка переменных разных типов? Даже если и найдется, то окажется что просто лень было сделать структуру и дать нормальные имена полям )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 18:41 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlА когда я пишу собственный класс для строк, я его делаю на основе юникода (с наследованием от ICU) и никакие std::w?string мне не нужны вообще. Ну а мне нужны были, когда я один и тот же исходник собирал в ansi и wide. В этом и суть С++, если вам что-то не нужно, то вы его не используете, а если нужно, то оно просто есть, без выламывания себе рук )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 18:47 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alexy_blackвот например строка. с одной стороны, я бы хотел, чтобы это был набор символов, но это не так. то есть в плюсах std::string - это контейнер char, но символы не влезают в char.. Грустно видеть, что многие "закомплексованы" некоими МОНОЛОЛИТНЫМИ СТАНДАРТАМИ ..., которые признаны ЛУЧШИМИ И НЕОСПОРИМЫМИ /template, STL, объекты, ООП, ... в стиле а-ля C++/. Также наблюдая за ходом обсуждения многих тем /вопросов/, для многих существующие "стандарты" являются ВЫСОКИМ ЗАБОРОМ, который не позволяет им заглянуть за него и понять, что существую и иные подходы к разрешению вопросов ... Строки ... /огромная тема. А если коснуться алгоритмов поиска данных в строках ... О-о-о .../ Далее немного об строках и кодировках. Не буду останавливаться на "родословной" кодировок ... /почему первые тридцать два символа управляющие и необходимость каждого из них ... и др. особенностях "устройства" кодировок/. Сначала об "буквах" . В многих странах имеются свои особенности написания, произношения слов. К примеру /на вскидку/ в Германии некоторые сочетания пары букв считаются одной буквой /которой в алфавите, то и нет/. При этом эти "национальные" /locale/ особенности должны быть учтены при разработке библиотек для работы с строками. Можно ли спроектировать архитектуру строк, которая бы учитывала "национальные" их особенности и др. моменты? Да. ИМХНО должен быть разработан некий RFC представления строк . Скорее всего этот RFC должен содержать описание назначения мета данных и правил их использования. За основу представления букв скорее всего лучше взять UTF16. Набор мета данных и их представление описывать не буду. Но очень важно то, что мета данные дадут разработчикам библиотек информацию об "национальных" особенностях представления строк и тем самым не вдаваясь /и даже ни чего не зная об них/ разработать библиотеки для работы с строками, функциональность которых будет заведомо правильная для любого humane language. Более того мета данные дадут даже такую важную информацию как продолжительность произношения звуков /в виде строк можно будет даже записать "речь" шимпанзе .../. Далее намек ... /для тех кто поймет о чем речь/. Meta данные позволили бы предоставить данные и упорядочивании букв в каком-либо алфавите /даже возможность неких exclusive требований/. PS: Здесь не говорилось об native формате представления строк ... /struct, .../ Некоторые скажут - "С таким форматом замучаешься" ... Ан нет. Вспомните, что мы используем meta данные. Как же представить "стандартные" форматы <string>, std::string, ...? Да просто. Meta символ указывает на тип строки, за которым следует сама строка. PS2: Кто выльет первое ведро помоев, тот удостоится моего персонального приза - " Заслуженный участник форума ". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 19:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012, какие другие подходы вы подразумеваете? lips? я вобще не об этом. я о том, что в случаи со строками выбор шаблона может быть оправданным. то есть это одна из возможных хороших реализаций. тут как бы упор не на строки, а на шаблоны :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 20:09 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Ынтырпрайзыч(тм), культура речи на высоте, а по существу что-то скажешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 20:51 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alexy_blackВладимир2012, какие другие подходы вы подразумеваете? lips? я вообще не об этом. я о том, что в случаи со строками выбор шаблона может быть оправданным. то есть это одна из возможных хороших реализаций. тут как бы упор не на строки, а на шаблоны :)Не Lisp и др. языки программирования важны сами по себе ... Для меня они прежде всего важные в аспекте тех идей и подходов, которые предоставили эти языки программирования ... Вы говорите о каких подходах речь? Разве здесь может быть какой-то однозначный ответ? Имеется огромное количество алгоритмов, ... разработанных другими. Нужно ли их и как и в каком случае лучше использовать сложный вопрос ... Да и не каждому это нужно ... Обычно задачи можно разделить на "системные" /результатом которых могут воспользоваться другие/ и пользовательские /создание программ на основе разработанных кем-то ранее libraries/. Не призываю кого-либо к тому, чтобы "все и вся критиковать и неизвергать" и тем более стремиться создать что-то на противность всем, только чтобы оно было "СВОЕ" и якобы "ЛУЧШЕЕ" ... PS: Не знаю, что вам и ответить ... Все зависит от каждого из нас. Одним "по душе" создание libraries, ... - системщики. Другим прикладной софт - большинство. "Все мы люди нужные, необходимые ..." [spoiler]Снежная королева, 1966 г. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 20:53 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskymaytonТакое должно работать. Код: plaintext 1. Пожалуйста Код: plaintext 1. Ну что-ж защитано. Правда мне нужно много чего делать со списками. Брать голову. Хвост. И много других фундаментальных операций из ФП. Мне также надо чтобы я рационально использовал память в рамках доступных мне возможностей. Кстати. А как переводится tuple? Кортеж? Есть-ли какие-либо различия между списком и кортежем. Для меня это важно т.к. эффортит. Эффортит либо на производительность либо на возможности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 21:38 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Вася УткинС шаблонами (compile time polymorphism) при несоответствии типов будет ошибка компилятора, а без шаблонов с RTTI (runtime polymorphism) не будет ошибки компилятора. Очевидно же что RTTI лучше, т.к. нет ошибки Вообще компилятора не должен выдавать ошибки, тогда все программы будут правильными. Вась. Согласись что статическая проверка сработает только в рамках одного бинарника. А если мы создаем по настоящему гетерогенное приложение (много модулей взаимодейсвуют) то нам все равно нужно в рантайме что-то проверять. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 21:41 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
White OwlmaytonНу... прежде всего надо формализовать список в понимании ФП. И дать возможность толкать в него микс из типов.Зачем??? У тебя есть хоть одна задача требующая списка переменных разных типов? Есть. У меня много хотелок. Например я хочу рассматривать любой объект как список свойств и единообразно сериализировать-десериализировать и выполнять общие операции ORM-маппинга. Классическая парадигма требует хардкода. А представление списком - унифицирует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 21:42 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyWhite OwlА когда я пишу собственный класс для строк, я его делаю на основе юникода (с наследованием от ICU) и никакие std::w?string мне не нужны вообще. Ну а мне нужны были, когда я один и тот же исходник собирал в ansi и wide. В этом и суть С++, если вам что-то не нужно, то вы его не используете, а если нужно, то оно просто есть, без выламывания себе рук )) КМК кейс с собственным подсчетом количества символов - это "птичье молоко". Я думаю что большинство из нас проживут длинную и счастливую жизнь с Unicode (utf-16) и никогда не столкнуться с теми ужасами котрые описывает Анатолий. Пожалуй если-б я наступил на подобный грабель - то имплементил-бы кастом-библиотеку для поддержки строк с кодовыми точками. Но я-бы не возводил их в ранг правила. Да и нет здесь правила. Меня устраивает строка в сущесвтующем определении. Определение Анатолия мне не по душе равно как и не по душе "натяжка" с подсчетом длинны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 21:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonникогда не столкнуться с теми ужасами котрые описывает Анатолий Ну да. Большинство повезло и они никогда не столкнется с WinAPI где как раз и есть два варианта АПИ ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 22:06 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonЕсть-ли какие-либо различия между списком и кортежем Кортеж - это структура (с о списком полей заданным при компиляции). А список это коллекция однородных элементов . Ну а гетерогенную коллекцию надо обосновать конечно. Скорее всего это баг дизайна. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 22:12 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonВася УткинС шаблонами (compile time polymorphism) при несоответствии типов будет ошибка компилятора, а без шаблонов с RTTI (runtime polymorphism) не будет ошибки компилятора. Очевидно же что RTTI лучше, т.к. нет ошибки Вообще компилятора не должен выдавать ошибки, тогда все программы будут правильными. Вась. Согласись что статическая проверка сработает только в рамках одного бинарника. А если мы создаем по настоящему гетерогенное приложение (много модулей взаимодейсвуют) то нам все равно нужно в рантайме что-то проверять. Т.е. раз не можешь создать рай везде, то пусть везде будет ад? Главное что правильно будет работать мой софт и софт тех у кого хватило разобраться с шаблонами. Ну а остальные будут жаловаться на все технологии, какие им не дай ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 22:42 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
mayton, Utf-16 — инвалид если что ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 23:18 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропилmayton, Utf-16 — инвалид если что Чо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.09.2016, 23:56 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonЧо?Потому что он создает впечатление что каждый символ занимает 2 байта. И исходя из этой ложной мысли написаны мегатонны бажного софта. Намного честнее utf-8. Там изначально понятно что символы переменной длины, и ни у кого ненужных фантазий не возникает. Не говоря уже об удобстве и обратной совместимости с ASCII. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 00:18 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonИзопропилmayton, Utf-16 — инвалид если что Чо? Ни то ни сё Вполне безобидные символы могут кодироваться суррогатными парами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 00:22 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Можно ли спроектировать архитектуру строк, которая бы учитывала "национальные" их особенности и др. моменты? Консорциум юникода - рекомендую. ИМХНО должен быть разработан некий RFC представления строк Вагон . Опять-таки - рекомендую ознакомиться.За основу представления букв скорее всего лучше взять UTF16.Не надо решать давно решённую задачу. Основная кодировка - UFT8. Всё остальное - старорежимные отрыжки.PS: Здесь не говорилось об native формате представления строк ... /struct, .../А какого лешего вы тогда UTF16 упомянули??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 10:23 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovА какого лешего вы тогда UTF16 упомянули???В предложенном формате строки используются meta данные и char в некоторой кодировке. В качестве основной кодировки предложил использовать UTF16 так как символ любой кодировки можно представить в виде двух байтового значения и тем самым упростить манипуляции ними /не зря Microsoft выбрала именно UTF16/. Но безусловно meta данные могут указывать на то, что далее идут chars некоторой кодировки /например UTF8/. Какие из RFC определяют правила представления "универсального" формата строк? Вообще то все RFC определяют некоторый "стандарт", используемый при решении некоторой задачи. Универсальных RFC нет. Поэтому чем чаще разработчики будут что-либо "изобретать" тем чаще будут появляться новые RFC. PS: Предложенный формат формат представления строк в основном был направлен к тому, чтобы обратить внимание, что даже в таком вопросе как представление строк возможно спроектировать множество форматов их представления. И опять таки не с целью отвергнуть то, что кем то уже сделано, а в случае если для проекта требуется именно exclusive формат. В связи с этим не думаю, что имеет смысл обсуждать предложенный мной формат представления строк. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 11:49 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012/не зря Microsoft выбрала именно UTF16/. cp1251, не? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 11:56 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alexy_blackcp1251, не?Наш любимый TCHAR Что такое TCHAR, WCHAR, LPSTR, LPWSTR,LPCTSTR (итд) https://habrahabr.ru/post/164193/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 12:06 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012В качестве основной кодировки предложил использовать UTF16 так как символ любой кодировки можно представить в виде двух байтового значенияЯ, по вашему, просто так дал ссылку на юникод? сделайте плакат на стенуВ кодовой точке - 21 бит Символ юникода даже в базовой плоскости может состоять из нескольких кодовых точек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 12:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovНе хочется комментировать, но, раз уж вы так настаиваете - зря. Очень зряНе настаиваю ... Но если вы приведете аргументы в преимущество использования UTF8 вместо UTF16, то буду рад. При разработке для WWW использую только UTF8. Для десктоп - TCHAR. Basil A. SidorovЯ, по вашему, просто так дал ссылку на юникод?Кодовая точка это что? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 12:28 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Для десктоп - TCHAR"Без комментариев".Кодовая точка это что?Примитив юникода. P.S. "И эти люди запрещают мне ковыряться в носу"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 12:34 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov"Без комментариев".Ну хорошо по другому. При использовании C++ для разработки под Windows. Что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 12:44 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovP.S. "И эти люди запрещают мне ковыряться в носу"?Какой то вы "дерганный" сильно ... Больше вам отвечать не буду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 12:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Ну хорошо по другому. При использовании C++ для разработки под Windows. Что не так?То, что на виндах свет клином не сошёлся. И то, что даже виндам приходится взаимодействовать с внешним миром. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 12:50 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012В качестве основной кодировки предложил использовать UTF16 так как символ любой кодировки можно представить в виде двух байтового значения и тем самым упростить манипуляции ними unicode определяет диапазон кодовых точек от 0 hex до 0x10FFFF двух байт никак не хватит, в UTF-16 для представления того, что не уместилось в два байта используются суррогатные пары ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 13:40 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
ИзопропилВладимир2012В качестве основной кодировки предложил использовать UTF16 так как символ любой кодировки можно представить в виде двух байтового значения и тем самым упростить манипуляции ними unicode определяет диапазон кодовых точек от 0 hex до 0x10FFFF двух байт никак не хватит, в UTF-16 для представления того, что не уместилось в два байта используются суррогатные пары Стоит ли закладываться на суррогатные пары, делая софт для 5 основных языков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 13:58 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
SiemarglСтоит ли закладываться на суррогатные пары, делая софт для 5 основных языков? FAQ - Normalization . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 14:12 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Русский , надеюсь, в "пять основных входит"? Что характерно, всё в пределах базовой плоскости (16-битные кодовые точки), но всё равно есть символы, которые могут быть представлены несколькими (двумя) кодовыми точками. P.S. Или будем настаивать, что грамотные люди и так отличают ёжиков от ежиков? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 14:45 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, суррогатные пары никакого отношения к нормализации не имеют ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 14:54 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропилсуррогатные пары никакого отношения к нормализации не имеютНе имеют. Зато нормализация наглядно демонстрирует, что нельзя взять представление с фиксированным числом байт на кодовую точку (UCS-2, USC-4, UTF-16 и UTF-32) и посчитать количество символов как разницу двух индексов. Причём этого нельзя сделать не только для языков с идеографической письменностью, но и для европейских языков. Даже для тех, для которых существуют однобайтовые кодировки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 15:03 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Интересное обсуждение Ограниченность набора символов Unicode для идентификаторов https://rsdn.org/forum/cpp/6539519.all ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 15:08 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Интересное обсуждениеTrigraphs and Universal Character Names http://www.open-std.org/jtc1/sc22/wg14/www/docs/n770.htm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 15:12 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Владимир2012Интересное обсуждениеTrigraphs and Universal Character Names http://www.open-std.org/jtc1/sc22/wg14/www/docs/n770.htm Sorry Еще URL identifier character set (clang) https://stackoverflow.com/questions/24469809/identifier-character-set-clang ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 15:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
А если так? Добавить в C++ синтаксис, обеспечивающий многоязычную возможность задания имени идентификатора. Что то типа. int VpTime{ ru:VpВремя, es:VpTiempo}; Ну а далее в программе используем один из трех вариантов напсания имени переменной. Например: VpВремя += 5; VpTiempo -= 1; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 16:07 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Ну а далее в программе используем один из трех вариантов напсания имени переменной.Sorry. Ну а далее в программе используем один из трех вариантов написания имени переменной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 16:08 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Займитесь лучше литературным программированием . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 16:18 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЗаймитесь лучше литературным программированием .Благодарю /неплохо, неплохо, .../ В долгу не хочу оставаться ... Неявные интерфейсы С++ шаблонов http://grizlyk1.narod.ru/cpp_new/msg02/template_interfaces_280616.pdf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 16:33 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЗаймитесь лучше литературным программированием .Гм. Интересные идеи habrahabr относит к "ненормальному программированию" ... /а может быть оно и к лучшему ... Плохо когда дурак поймет "шиворот навыворот", а затем еще накуралесит./ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 16:41 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Неявные интерфейсы С++ шаблонов http://grizlyk1.narod.ru/cpp_new/msg02/template_interfaces_280616.pdf Человек, создающий IPv4r2 не умеет адекватно мыслить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 16:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovЧеловек, создающий IPv4r2 не умеет адекватно мыслитьЕще не читал ... Но все же - "В чем не адекватность?". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 17:04 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Давайте себе представим что существует аналогия между char[] массивом символов и строкой string. При этом нам, как инженерам хотелось-бы иметь простые формулы перехода от одной системы к другой. Ну ... примерно так-же как в математике переходят от чисел к комплесным числам и матрицам. В случае с Utf-16 у нас 1 символ полностью соотвествует знакоместу в string. Формулы индексаторов (взятия символа по индексу в строке) также просты. Проще говоря нам удобно в utf-16 реализовывать позиционирование. Нам также удобно (без преобразований) осуществлять маппинг типа. Для \0 символа предусмотреть еще одно расширение char[] и дело сделано. И если привлекать в спор рассуждения об энергоёмкости или энергопотреблении (как было сказано выше) то я-бы предположил что алгоритмы, работающие со сжатым (utf-8) предсталением строк энергоёмки и накладны. Проводя аналогию с архивацией - их имплеметация индексатора или взятия под-строки (::substring) требуют использования декодеров т.н префиксного кода. Один печально известный финский парень со сложным характером недавно сетовал дескыть что около 5 лет изменений в ядро ОС Linux было потрачено на поддержки современных технологий энергоэффективности. И эти issues имели под собой основание. Так почему-же сейчас мы тут безосновательно предлагаем энерго-накладную технологию обработки строк даже не задумываясь о последствиях? По моему скромному мнению отраслевые изменения которые произошли после внедрений Microsoft.Net, Oracle/Java должны поставить точку в этом споре. Двухбайтная кодировка имплементирована и живет. Диалектические споры на тему того сколько нужно битов - 16 или 21 - давайте оставим для евангелистов. Следующая веха в развитии разрядной сетки для символа должна возникнуть с освоением космоса. А исходя из общих принципов и архитектур построения стандартов с учетом производительности - нам нужен не трех-байтных символ а сразу четырех-байтный. С padding-ом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 17:23 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Вы меня прям в тупик ставите ... Двойные стэки реализованы лет десять как, существуют разные варианты туннелирования IPv4 <-> IPv6. И всё это умеет сетевое оборудование от тирванского до бытового. Но тут появляется рыцарь без страха и упрёка, который готов не только сражаться с ветряными мельницами, но ещё и сам их возводит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 17:26 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonВ случае с Utf-16 у нас 1 символ полностью соотвествует знакоместу в stringЧто ж вы все такие упёрто-упоротые ... Не соответствует. Или крестик снимите юникод выбросьте или работайте с символами, которые состоят из последовательности кодовых точек в соответствии со стандартами, а не по собственным измышлениям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 17:30 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonя-бы предположил что алгоритмы, работающие со сжатым (utf-8) предсталением строк энергоёмки и накладны. На основании чего предположение? ))) maytonТак почему-же сейчас мы тут безосновательно предлагаем энерго-накладную технологию обработки строк даже не задумываясь о последствиях? Ну да, ну да, безосновательно - это мы любим ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 17:33 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovmaytonВ случае с Utf-16 у нас 1 символ полностью соотвествует знакоместу в stringЧто ж вы все такие упёрто-упоротые ... Не соответствует. Или крестик снимите юникод выбросьте или работайте с символами, которые состоят из последовательности кодовых точек в соответствии со стандартами, а не по собственным измышлениям. Василий. Ну хорошо. Я готов допустить что кодовые точки и знания о них очень важны. Опиши пожалуйста конкретный кейс (желательно для языков стран ЕС) когда нам не хватает API Utf-16. Нет правда. Я готов поверить. P.S. Назови! Нет я жду! (с) Аркадий Варламович Велюров... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 17:42 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonА исходя из общих принципов и архитектур построения стандартов с учетом производительности - нам нужен не трех-байтных символ а сразу четырех-байтный. С padding-ом. UTF-32 SiemarglСтоит ли закладываться на суррогатные пары, делая софт для 5 основных языков? Unicode Block “Transport And Map Symbols” как минимум преобразования UTF-8 <> UTF-16 должны быть корректными ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 17:49 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonОпиши пожалуйста конкретный кейс (желательно для языков стран ЕС) когда нам не хватает API Utf-16.Нету такого API. Есть (уже странное) желание работать с юникодными строками, как с массивом символов. Не выходит. И никогда не получится, поскольку базовое понятие юникода - составные символы. Таким образом, я не могу просто "ткнуться по индексу" и начать "что-то делать" - сначала надо должен проверить "а не попал ли я куда-то в середину составного символа". Будут символы составными или нет зависит не от кодировки , а от нормализации. А если при любой кодировке надо работать с символами переменной ширины, то UFT-16/UTF-32 не получают никаких таких особых преимуществ перед UTF-8. Наоборот, UTF-8 становится предпочтительной кодировкой, т.к. она обеспечивает обратную совместимость с US-ASCII и возможность работы с юникодом при минимальных правках реализаций, сделанных для US-ASCII. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 17:57 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, еще раз прошу. Опиши кейс использования который мы используем неправильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 18:15 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonBasil A. Sidorov, еще раз прошу. Опиши кейс использования который мы используем неправильно.Ёжики зелёные! В кодировке UTF-16 это будет 28 байт в нормализации C/KC и 32 байта - в нормализациях D/KD. В UTF-8 - 26 и 30 байт, соответсвенно. Таким образом , в русском алфавите кириллического блока юникода есть четыре символа переменной ширины - "ёЁйЙ". Вы всё ещё хотите обращаться с юникодными символами, как с массивом знакомест? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 18:35 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. таки равны строки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 18:39 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропилтаки равны строкиЯсен перец, что равны. Корректная работа с юникодными строками может быть обеспечена при любой кодировке. В ICU их (кодировок) штук двадцать, наверное. Речь, вообще-то, о несколько другом. Апологеты Win API утверждают, что UTF-16 - филосовский камень, а это совсем не так. P.S. Вот когда (если) вы реализуете CompareStringEx() для разных кодировок - тогда и можно будет предметно побеседовать о преимуществах кодировок с фиксированным размером кодовых точек. Правда, подозреваю, что тогда и предмет обсуждения исчезнет за полной эфемерностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 18:54 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov Таким образом , в русском алфавите кириллического блока юникода есть четыре символа переменной ширины - "ёЁйЙ".Не ошибаетесь? Вот к примеру "ё" http://www.fileformat.info/info/unicode/char/0451/index.htm Ниже приведен код. В отладчике установите останов на строке return result; и посмотрите native представление строки s1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 19:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovПравда, подозреваю, что тогда и предмет обсуждения исчезнет за полной эфемерностью. предмет и так нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 19:20 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012В отладчике установите останов на строке return result; и посмотрите native представление строки s1 \x0451 - что не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 19:24 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропил\x0451 - что не так? Basil A. Sidorov утверждает, что Basil A. Sidorov Таким образом , в русском алфавите кириллического блока юникода есть четыре символа переменной ширины - "ёЁйЙ".Если его правильно понял, то "ё" например представлена не двух байтным кодом. А каким? Еще раз http://graphemica.com/ё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 19:34 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012, многострадальная ё независимо от кодировки (UTF-8,UTF-16 и т д) может быть представлена как одной кодовой точкой (U+0451), так и двумя - (U+0435) (U+0308) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 19:42 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov Таким образом , в русском алфавите кириллического блока юникода есть четыре символа переменной ширины - "ёЁйЙ". Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. В отладчике посмотрите на коды символов ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 19:43 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
При сравнении через Collator с указанием особенностей страны + языка все чики-пики. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. Код: java 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:11 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропилмногострадальная ё независимо от кодировки (UTF-8,UTF-16 и т д) может быть представлена как одной кодовой точкой (U+0451), так и двумя - (U+0435) (U+0308)Решил проверить возможность получения ё с внутренним представлением (U+0435) (U+0308). Вообщем FAR и notepad++ не умеют работать с UTF-16. google помог нашел http://akelpad.sourceforge.net/. Создал текстовый файлик, содержащий текст "ёЁйЙ" и с помощью FAR посмотрел кодовое представление. Итого имеем: 0000000000: FEFF 0451 0401 0439 0419 ?ёЁйЙ На всякий случай кому интересно ниже приведено объяснение почему в начале файла находится код 0xFEFF https://ru.wikipedia.org/wiki/UTF-16 Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:29 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Вообщем FAR и notepad++ не умеют работать с UTF-16. композитные символы не имеет никакого отношения к кодировке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:35 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Если его правильно понялНеправильно. Один и тот же символ может быть представлен как одним кодом, так и несколькими. От кодировки это не зависит. Поэтому, вне зависимости от кодировки, символы юникода должны рассматриваться, как имеющими переменную длину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:44 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Вообщем то Basil A. Sidorov предостерегает, что с строкой в коде UTF-16 нельзя работать как с массивом. Что-то в этом есть. Может кто четко сформулировать в каком случае так с ней работать нельзя? Вообщем то согласно https://ru.wikipedia.org/wiki/UTF-16 понятно когда UTF-16 имеет не двух байтовый код. Но если не ошибаюсь, то для программ, которые работают с общепринятыми кодовыми страницами /CP1251, .../ мы не столкнемся с багами ... См. что говорится на странице https://ru.wikipedia.org/wiki/Юникод Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:44 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропилкомпозитные символы не имеет никакого отношения к кодировкеНу в таком случае имеем право работать с строкой в UTF-16 как с массивом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonПри сравнении через Collator с указанием особенностей страны + языка все чики-пикиТолько это не из-за мифических пузырьков UTF-16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:47 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Ну в таком случае имеем право работать с строкой в UTF-16 как с массивом.Имеете. Только лажать будете. А если не будете - код получится ничуть не проще и ничуть не эффективнее, чем при работе со строками как с массивом байт в кодировке UTF-8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:49 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
кодовая точка U+1F682 STEAM LOCOMOTIVE 🚂 в разных кодировках: Код: plaintext 1. 2. в случае (U+0451) и (U+0435) (U+0308) - представление Ё различно при использовании ОДНОЙ кодировки Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:51 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovmaytonПри сравнении через Collator с указанием особенностей страны + языка все чики-пикиТолько это не из-за мифических пузырьков UTF-16. Вася. Как часто в своей практике ты встречал букву Ё закодированную т.н. кодовыми точками или двумя символами UTF-16 ? Только по чесноку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 20:55 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Изопропилкомпозитные символы не имеет никакого отношения к кодировкеНу в таком случае имеем право работать с строкой в UTF-16 как с массивом. как паровозик в UTF-8 перекодируете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:02 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonТолько по чесноку.В "старых" маках использовалась максимальная декомпозиция. Как в новых - не знаю. У меня нет и не было ни старого, ни нового. Только что это меняет? Хотя ... Есть встречный вопрос - вам часто приходилось "врукопашную" строки сравнивать? А почему тогда вы так уверены, что UTF-16 круче, чем крутые яйца? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:04 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonзакодированную т.н. кодовыми точками или двумя символами UTF-16 ?И, кстати, опять эта типичная ошибка. Кодовые точки они тоже от кодировки не зависят - это просто числа. И "широкое" представление "cyrylic letter yo" это два кода и один символ даже в UTF-16. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:07 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovИмеете. Только лажать будете. А если не будете - код получится ничуть не проще и ничуть не эффективнее, чем при работе со строками как с массивом байт в кодировке UTF-8.Давно присматривался к http://site.icu-project.org/, но пока не использовал. 1C 8.x использует. Далее сказанное к 1С отношения не имеет. Все используют library ICU [spoiler] ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:09 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
хер с ней, ё как сравнивать немецкий эсцет ẞ и ss , прочие европейские лигатуры ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:11 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Как-как ... Код: java 1. UTF-16, фиксированная ширина на знакоместо, все дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonКак часто в своей практике ты встречал букву Ё закодированную т.н. кодовыми точками или двумя символами UTF-16 ? Ё не знаю. А вот всякие зачеркивания, подчеркивания, ударения - регулярно встречаются. Они меняют физическую длину строки, не меняя число символов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:21 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovmaytonТолько по чесноку.В "старых" маках использовалась максимальная декомпозиция. Как в новых - не знаю. У меня нет и не было ни старого, ни нового. Только что это меняет? Хотя ... Есть встречный вопрос - вам часто приходилось "врукопашную" строки сравнивать? А почему тогда вы так уверены, что UTF-16 круче, чем крутые яйца? Да как-то не могу оценить процент полезной инфы из этих знаний. Вот здесь over несколько страниц идет обсуждение на тему того что букву ё надо сравнивать не по words а более сложным образом но у меня есть сомнения в практичности выбранного подхода. Возможно есть какой-то класс приложений сродни морфологических или филологических где важен генезис букв в словах и там наверное есть смысл поддержать кодовые точки. Но я за последние лет 15 не встречал чтобы кто-то кодировал букву Ё двумя символами. Если такие приложения действительно мне попадуться - я пожалуй буду использовать коллейшенс и прочие CompareStringEx а пока позвольте мне остаться при своем мнении об использовании Utf-16. Вобщем давайте на этом заканчивать и вернёмся к С++. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:44 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonмнении об использовании Utf-16. не надо мягкое и тёплое путать, CODEPOINT и ENCODING несчастная буква Ё - может иметь разное представление в кодовых точках (одна и две кодовых точки) кодовая точка может по разному представляться в UTF-8,UTF-16,UTF-32 и т д ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Как относитесь к возможности расширения C++ для возможности написания имен в национальных кодировках? Вообщем то C++ уже с ограничениями позволяет так кодировать имена ... Sorry. Повторю предложенное ранее. Добавить в C++ синтаксис, обеспечивающий многоязычную возможность задания имени идентификатора. Что то типа. int VpTime{ ru:VpВремя, es:VpTiempo}; Ну а далее в программе используем один из трех вариантов написания имени переменной. Например: VpВремя += 5; VpTiempo -= 1; PS: Вот к примеру 1С русские названия управляющих операторов не использую, а название переменных ... зачастую использую русские названия /мне удобно/. В C++ однозначно часто бы наряду с английскими названиями использовал бы русские. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 21:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Вот официальное мнение http://icu-project.org/docs/papers/forms_of_unicode/ В этой статье затронуты все те вопросы, которые мы обсуждали ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 22:16 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012, отношение между символами и глифами не обсуждалось, а тема интересная не до него. с примитивным энкодингом не справились... а "официальное мнение" находится здесь - http://www.unicode.org/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 22:29 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропилотношение между символами и глифами не обсуждалось, а тема интереснаяВ этой статье не только этот вопрос затронут ... Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. Кстати в Table 1 Вот что сказано об UTF-16. Код: plaintext 1. 2. Так что в целом с суждением maytonЕсли такие приложения действительно мне попадуться - я пожалуй буду использовать коллейшенс и прочие CompareStringEx а пока позвольте мне остаться при своем мнении об использовании Utf-16.согласен. Вообщем планирую задействовать при разработке и ICU. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 22:49 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012, желаю удачно походить по граблям )) чему равен sizeof(wchar_t) ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.09.2016, 23:15 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
MasterZivКуда катится C++В сторону Javы P.S. ымхо-хо-хо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.09.2016, 11:53 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
UsmanMasterZivКуда катится C++В сторону Javы P.S. ымхо-хо-хо Откуда такие выводы? Судя по количеству постов, С++ в два раза медленнее катится, чем движется ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 06:32 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Не плохо если бы модератор предыдущие страницы 3 удалил ... Разговор ни о чем ... /и с моей стороны также/. Достаточно придерживаться того о чем говорит Microsoft и все будет Ok! Generic-Text Mappings in Tchar.h https://msdn.microsoft.com/en-US/library/c426s321.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 09:50 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012Достаточно придерживаться того о чем говорит Microsoft и все будет Ok! где у Microsoft написано, что нужно игнорировать понятие codepoint и суррогатные пары в UTF-16? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 11:22 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
ИзопропилВладимир2012Достаточно придерживаться того о чем говорит Microsoft и все будет Ok! где у Microsoft написано, что нужно игнорировать понятие codepoint и суррогатные пары в UTF-16? Подытоживая все вышесказанное. Я предлагаю считать тему Utf-8/16/32 и кодовых точек важной и актуальной но требующей отдельного обсуждения и отдельного топика. Считаю также что тема Utf-8/16/32 и кодовых точек не имеет отношения к С++ и предлагаю считать ее оффтопом. Предлагаю сейчас и впредь не поддерживать это направление обсуждения в данном топике. Коллеги? Илья? WhiteOwl? Жду ваших комментариев. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.09.2016, 21:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Изопропилчему равен sizeof(wchar_t) ?Зависит от платформы. 1 байт -- в старых Android 2 байта -- в Windows 4 байта -- в Linux, в новых Android UsmanMasterZivКуда катится C++В сторону JavыC++ катится в сторону ненужности. Если надо выжимать максимум из железа (по скорости и памяти), то используем чистый C, или C++ в стиле «better C», или C++ в стиле «C with Classes». Если не надо выжимать максимум из железа, то используем managed-язык. Кто не верит, что на managed-языках можно писать адекватный тиражно-коробочный soft, -- скачайте например SmartGit (Git-клиент, написан на Java) и убедитесь. А C++ в стиле «modern C++» (по всему коду используются STL-контейнеры и умные указатели) не особо нужен. maytonПодытоживая все вышесказанное.В C++, кодировка UTF-16 -- не нужна (за исключением C++-кода, который работает с WinAPI или JNI) => типы std::wstring (= std::basic_string<wchar_t>) и std::basic_string<char16_t> -- тоже не нужны => нужен только тип std::string => его (или аналог) можно сделать без всяких шаблонов. Ведь C++ -- это язык для создания строковых классов, в каждой крупной C++-библиотеке есть свой строковый класс (CString, QString, wxString, и т.д.). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 04:40 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonWhite Owlпропущено... Зачем??? У тебя есть хоть одна задача требующая списка переменных разных типов? Есть. У меня много хотелок. Например я хочу рассматривать любой объект как список свойств и единообразно сериализировать-десериализировать и выполнять общие операции ORM-маппинга. Классическая парадигма требует хардкода. А представление списком - унифицирует.Извини, но это очень недодуманная хотелка. Даже если ты сделаешь список с разнотипными переменными, тебе по прежнему будет нужно этот список как-то обработать. Нет смысла просто делать список "чтоб был". Список нужен для чего-то. А как только мы добавляем в список некую структурность которая должна объяснить читателю списка что за элементы в этом списке лежат - мы сразу получаем либо список типизированных структур, либо список кортежей с идентификатором элемента в каждом коретеже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 18:26 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonЕсть. У меня много хотелок. Например я хочу рассматривать любой объект как список свойств и ...Вот вы и подошли к парадигме обобщенного программирования. Рад за вас. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 19:44 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonНапример я хочу рассматривать любой объект как список свойствГорячо, ... Не слушайте "поучающих". На форумах процентов на 99 очень устойчиво наблюдается "знания" о которых говорится ниже> При коллективизации /тридцатые года/ повсеместно из сел направляли на курсы трактористов молодых парней. Курсы длились 2- месяца и на них затрагивались темы и устройства трактора и ... И вот на экзаменах один молодой новоиспеченный тракторист успешно, ответивший на все вопросы спрашивает экзаменующего - " Все понимаю. Вот только одного не понимаю. Куда же в нем кобылу впрягать? " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.09.2016, 20:47 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonНапример я хочу рассматривать любой объект как список свойств мне немного непонятно, куда пошло русло дискуссии... а сейчас объект это что? С++ даёт возможность делать динамически наполняемые свойствами объекты. Под свойствами можно опять же понимать всё что угодно, сделанное на шаблоне. Удобно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 05:16 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbС++ даёт возможность делать динамически наполняемые свойствами объекты.Про это и речь. Объекты, которым можно динамически добавить не только свойства, но и поля ... /у меня именно так и реализован код для работы с объектами/. PS: "Мы рождены, чтоб сказку сделать былью, Преодолеть пространство и простор, Нам Сталин дал стальные руки-крылья, А вместо сердца — пламенный мотор. Всё выше, выше и выше Стремим мы полёт наших птиц, И в каждом пропеллере дышит Спокойствие наших границ. " ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 08:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012не только свойства, но и полячто подразумевается под свойствами и под полями? вот блин, всегда думал что: "нам разум дал стальные руки-крылья" о_о ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 08:40 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbmaytonНапример я хочу рассматривать любой объект как список свойств мне немного непонятно, куда пошло русло дискуссии... а сейчас объект это что? С++ даёт возможность делать динамически наполняемые свойствами объекты. Под свойствами можно опять же понимать всё что угодно, сделанное на шаблоне. Удобно. Шаблон - это фаза компилляции. Его (шаблона) нет в рантайме. А я хочу в рантайме получать сведения об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят в основной цикл компилляции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 08:58 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonCEMbпропущено... мне немного непонятно, куда пошло русло дискуссии... а сейчас объект это что? С++ даёт возможность делать динамически наполняемые свойствами объекты. Под свойствами можно опять же понимать всё что угодно, сделанное на шаблоне. Удобно. Шаблон - это фаза компилляции. Его (шаблона) нет в рантайме. А я хочу в рантайме получать сведения об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят в основной цикл компилляции.Это дорого и по памяти и по быстродействию и по оптимизации. Для этого есть другие языки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:09 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbчто подразумевается под свойствами и под полями? ИМХУ бардак в терминологии в других ЯП. Добавили методы чтения/записи свойств, добавили синтаксический сахар чтобы методы выглядели как свойства, назвали это свойствами, а свойства переобозвали полями. Например в C# В С++ это вроде не наблюдается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:11 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonШаблон - это фаза компилляции. Его (шаблона) нет в рантайме. А я хочу в рантайме получать сведения об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят в основной цикл компилляцииСУБД до некоторой степени как раз и поддерживают некоторый вид динамических объектов. Можно добавить некоторые поля в объект, но при этом от программиста не нужно будет перекомпилировать исходные коды скриптов. И все работает! Проще говоря все СУБД поддерживают некоторую архитектуру объектов и некоторый вид языков программирования для доступа к ним. NOSQL базы аналогично также поддерживают некоторую архитектуру объектов ... ... ... PS: Кто хочет обеспечить в своих программах возможность динамически /без перекомпиляции/ работать с объектами должны: - разработать и реализовать требуемую архитектуру объектов; - обеспечить средства /libreries, языки программирования, .../ для работы с объектами. Другой вид программ - "традиционный", при котором на всякий "чих" требуется перекомпиляция и пересборка программы. Скорее всего имеются и другие пути понимания что такое объект и как с ним работать .. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Dima TИМХУ бардак в терминологии в других ЯП. Добавили методы чтения/записи свойств, добавили синтаксический сахар чтобы методы выглядели как свойства, назвали это свойствами, а свойства переобозвали полями.Угу, угу ... К примеру в СУБД таблица по существу является контейнером для некоторого вида объекта, свойства которых раскрываются в ряде подчиненных таблиц ... PS: Не знаю можно ли вообще дать некоторое "универсальное" определение что такое объект и что означает свойство объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:24 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Dima TИМХУ бардак в терминологии в других ЯП. Добавили методы чтения/записи свойств, добавили синтаксический сахар чтобы методы выглядели как свойства, назвали это свойствами, а свойства переобозвали полями. Например в C# В С++ это вроде не наблюдается.По другому говоря ... "Мы говорим поле - подразумеваем свойство. Мы говорим свойство - подразумеваем поле". PS: Ведь часто свойство в свою очередь может иметь подсвойства ... /иерархия, эволюция, .../ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 09:55 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonА я хочу в рантайме получать сведения об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят в основной цикл компилляции. Если ты хочешь в рантайме - интерфейсы. Если ты хочешь из других библиотек - интерфейсы для работы с другими библиотеками. Не надо на меня так смотреть, в общем случае непонятно, что такое "из других библиотек", или уточняй, что конкретно ты хочешь, или используй интерфейс к сферическому вакуумному классу. опять же, с утра нашёл, но ещё не смотрел std::type_info Dima TВ С++ это вроде не наблюдается. Очень даже наблюдается: __declspec(property(...)) и мешает жить при отладке. Set/Get нормальная сама по себе штука, если без фанатизма. Я понимаю, когда у нас "сложный" параметр, который за собой тянет зависимости или который имеет границы по значениям или порождает события. Короче, интерактивный. Тогда да, мы делаем его private и наружу выставляем методы работы с ним (телевизор + ПДУ). Но когда в классе куча безобидных переменных, а тут же ещё это всё умножается в 10+ раз строчками кода гетеров-путеров получается путаница-гетаница неудобно ни читать, ни отлаживать, прыгая в отладке туда-сюда. А потом приходит MS и добавляет property, и все почему забивают на принятые в проекте нотации, потому что это же не члены класса! - и жизнь отладчика ухудшается в 2 раза. Я бы ещё им это простил, если бы их инструменты (VS) были удобными (как Idea), но когда это под дебагом абсолютно невозмодно прочитать... грр. Поэтому, если я всё правильно понял, свойства от полей никак информационно не отличаются :) Поэтому, всё решение у всех нас сводится к тому, что класс имеет список компонентов (давайте так назовём, чтоб не путаться) в виде контейнера шаблонов или контейнера указателей, неважно, и мы можем на ходу добавлять в объект класса эти компоненты. И существует некий универсальный инструмент для работы с этими компонентами: получить тип, значение и всё, что мы добавили в описание класса-компонента. И это решение будет довольно простое, гибкое и удобное. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbПоэтому, если я всё правильно понял, свойства от полей никак информационно не отличаются :) получи адрес свойства или передай его по ссылке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 10:55 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
ИзопропилCEMbПоэтому, если я всё правильно понял, свойства от полей никак информационно не отличаются :) получи адрес свойства или передай его по ссылкепочему никто не читает, что я пишу? CEMbсвойства от полей никак информационно не отличаются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:22 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Раз уж мы затронули тему динамических классов, ну или как это назвать, хочу немного подумать в слух. Модератор: Редактировано Когда я начал работать с динамикой, я обнаружил несколько прикольных вещей, которые снаружи не особенно заметны, пока не начинаешь это делать сам. В обычных классах архитектура продумывается заранее, возможно в процессе как-то меняется, но в любом случае мы ограничены этой архитектурой в процессе исполнения. С динамикой всё по-другому. Ну, т.е. понятно, что классы можно наполнять по ходу дела, да, но это общий случай. В частности же возможность динамически менять объекты класса часто приводит к интересным решениям, которые при простой разработке архитектуры в голову не приходят. Это как расширение сознания за счёт того, что динамическая структура класса на порядок "разнообразнее", чем статическая. А потом я понял, что ООП в обычном смысле мне теперь и не нужен. Не нужна иерархия классов. Достаточно создавать абстрактные базовые объекты и потом наполнять их нужными свойствами, что делает их более конкретными и близкими к неким логическим классам объектов. Далее мы можем в зависимости от наличия или отсутствия определённых свойств применять на объектах различные действия. Т.е. мы можем сваливать в кучу все наши объекты(привет, mayton), потом перебирая все объекты, смотрим, если у объекта есть, например, свойство "форма", то мы можем, например, "измерить размер" объекта. Если формы у объекта нет, то и измерять нечего. Логично? Наглядно? Жизненно? :) Дальше ещё лучше: свойства можно добавлять в свойства, что усложняет систему, но даёт больше гибкости и ещё сильнее расширяет сознание. Можно, конечно, без фанатизма, сделать отдельный класс для иерархии объектов, отдельных для свойств, так, наверно, даже лучше и нагляднее, но одно другого не отменяет. А ещё... Модератор: Редактировано ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 11:55 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbДальше ещё лучше: свойства можно добавлять в свойства, что усложняет систему, но даёт больше гибкости и ещё сильнее расширяет сознание.и где то в середине всего этого у нас иногда выскакивает логическая ошибка в программе и мы тратим жизнь в отладке, а могли бы заранее продумать необходимый дизайн классов приложения ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 12:05 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
egorychи где то в середине всего этого у нас иногда выскакивает логическая ошибка в программе и мы тратим жизнь в отладке, а могли бы заранее продумать необходимый дизайн классов приложения логические ошибки не зависят в данном случае от динамической модели, а целиком от архитектуры приложения. Более того, работая с такой моделью, я стал разумнее организовывать архитектуру приложения. Не уверен, что это связано с объектом обсуждения, но мне так кажется пока что. Все логические ошибки, даже довольно сложные, находятся очень быстро. Потому что сама структура приложения вообще и объекты в частности - упрощаются. Приложение легко делится на слои, не надо тащить за собой иерархии классов и копаться в них. Объекты, мало того, что достаточны по свойствам, так в них ещё очень просто эти свойства искать (с ужасом вспоминаю отладку какого-нибудь проекта на работе, где приходится, чтобы посмотреть значение свойства, рыться в списке в стопият переменных...). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 12:15 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbСемён, спасибо... о_о о_о о_о ...Ну и прав Семен на 100%. Зачем кому-то, что-то доказывать. Те кто любит настоять на своем, те по большей части просто - троли. Кто работает - у тех полно насущных задач ... /им тролить нет нужды, да и некогда/. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 12:19 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
egorychCEMbДальше ещё лучше: свойства можно добавлять в свойства, что усложняет систему, но даёт больше гибкости и ещё сильнее расширяет сознание.и где то в середине всего этого у нас иногда выскакивает логическая ошибка в программе и мы тратим жизнь в отладке, а могли бы заранее продумать необходимый дизайн классов приложения или хотябы получить ошибку компиляции :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 12:35 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alex_kили хотябы получить ошибку компиляции :) это уже имеет, как бы, отношение к языку и компилятору, а не своей реализации иерархии данных. Другими словами: никто ведь не заставляет, это ж не стандарт пока ещё ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 13:02 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMb, А разве речь не про рантайм? Иначе непонятен вообще разговор про авторДостаточно создавать абстрактные базовые объекты и потом наполнять их нужными свойствами, что делает их более конкретными и близкими к неким логическим классам объектов. Делай наследование, добавляй нужные поля - все в парадигме ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 14:08 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonCEMbпропущено... мне немного непонятно, куда пошло русло дискуссии... а сейчас объект это что? С++ даёт возможность делать динамически наполняемые свойствами объекты. Под свойствами можно опять же понимать всё что угодно, сделанное на шаблоне. Удобно. Шаблон - это фаза компилляции. Его (шаблона) нет в рантайме. А я хочу в рантайме получать сведения об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят в основной цикл компилляции. Ну и в чем проблема? http://coliru.stacked-crooked.com/a/ccbe8ba832669918 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 15:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
alex_kCEMb, А разве речь не про рантайм? Иначе непонятен вообще разговор про авторДостаточно создавать абстрактные базовые объекты и потом наполнять их нужными свойствами, что делает их более конкретными и близкими к неким логическим классам объектов. Делай наследование, добавляй нужные поля - все в парадигме ООП.Речь про рантайм, да. Немного ещё поясню разницу: чтобы добавить одно поле - нужен ещё один класс с этим полем. А если мне нужен на весь проект один объект этого класса? В динамике я просто добавлю объекту свойство. А если это поле многое меняет? К примеру, класс "человек". Человек человеку друг. Но тут мне понадобился негр. Нужен флаг bool m_bNegr(да это неправильная реализация, на надо прикапываться к тому, как надо было это сделать, я знаю). Я завожу ещё один дочерний класс CNegr : public CHuman, и у него завожу флаг m_bNegr. ОК. Но человек человеку друг, а негра никто не любит. Мне приходится делать все методы родительского класса от человек_устраивается_на_работу() до человек_заходит_в_бар(). Ладно, я перепишу их, так и быть. Всё, негра никто не любит, ура, классическое ООП победило. Но тут вдруг выясняется, что среди собак тоже бывают негры. И собаки не в одной иерархии с людьми. Я иду и пишу отдельный класс с функционалом для негра, ОК. Из зала с одной стороны подсказывают "интерфейссс...", с другой "шаблон...". Да, это всё по науке. Но если это будет негритянский интерфейс: мне надо будет описать интерфейс, возможно абстрактный (если наука слишком строгая), в итоге на негра-человека будет 2 класса, и на собаку-негра - 2 класса. Итого 3. Интерфейс и две имплементации, даже если код про работу с неграми одинаковый, всё равно надо тянуть свойства родительских классов, через наследование. Если это будет шаблон: это будет как раз что-то типа template <class T> class N : public T, тоже самое в чуть более изящной форме и один раз. Опять же, если код одинаковый. Если код разный - мне придётся делать частичную спецификацию, и чем больше, тем сомнительнее будет выгода использовать шаблоны. Нормальные люди просто напишут ещё один класс для негра с виртуальными методами, от которого отнаследуются. Это тот же интерфейс, но без выекрутасов. А я просто добавлю свойство в объект. Конечно, мне надо будет где-то написать код для этого свойства, и у меня он весь будет в куче, особенно, если он разный для разных предков. Зато я прям в одном месте могу описать дефолтное поведение (чёрный чайник поставили на полку в магазине, а в системе нет чайников) и частные случаи. Код, относящийся к одному свойству будет в одном месте. В классах - код относящийся к одному классу будет в одном месте. Да? А нет, он будет размазан по иерархии. Даже нормальные люди, которые написали один класс для негра, будут вынуждены как-то добывать информацию, от кого они родили негра, в случае когда код разный для разных сущностей. Я же эту информацию получу из объекта в рантайме напрямую (все ещё привет, mayton). Я не говорю, что классическое ООП это плохо. Это хорошо, как минимум вся эта волшебная динамика построена на классическом ООП. Просто мне динамика нравится. Особенно, знаете, когда это торкает... Вот вспомните какой-нибудь свой проект, и там какой-нибудь классический пример класса. Вот этот класс у вас в проекте, у него какие-то поля ("какие тополя!", да, не отвлекайтесь), всё это используется как-то красиво в коде, стройно, чётко и работает. Так вот. Прелесть динамики не только в том, что вы в объект на ходу можете добавлять поля. А ещё большая, как мне показалось, прелесть в том, что вы можете эти поля убирать Ещё раз вспомните свой класс и примените на нём это знание. Чувствуете, как расширяются горизонты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 17:17 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Читаю, читаю и вспоминается попугай Кеша с его бессмертным: "А если дождь во время усушки?". Может, просто взять за правило работать в тех рамках, которые есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 17:32 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovМожет, просто взять за правило работать в тех рамках, которые есть?Всё-таки, почему никто не читает, что я пишу? :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 17:37 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
... но, если хотите, могу пояснить более развернуто. Есть, например, Object REXX - там и свойства и "ранний выход" (reply) и никаких иерархий (сеть объектов, основанная на обмене сообщениями). Функциональщины, вроде нет, но, наверное, можно "прикрутить" что-нибудь "этакое". В принципе, если сам язык вас устраивает - всё хорошо. "Но есть ньюанс". Это интерпретируемый (точнее - токенизируемый) язык. Всё, что нужно - вычисляется в динамике. С соответствующими накладными расходами. И лично я - плохо понимаю как (хоть сколько-нибудь эффективно) упихнуть любую такую динамичность в машинный код. Как навернуть "мощный рантайм" - понимаю, как сохранить эффективность - нет. Проблема, с моей кочки зрения, лежит вне языков программирования. Проблема в том, что современный бизнес - одна большая "группа А". И информационные технологии - на лидирующих позициях в этой группе, и вместо "производства средств потребления" делаются попытки создать всё более изощрённые "производства средств производства". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 17:54 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
ок, оставим динамику в стороне.Basil A. SidorovПроблема, с моей кочки зрения, лежит вне языков программирования. Проблема в том, что современный бизнес - одна большая "группа А". И информационные технологии - на лидирующих позициях в этой группе, и вместо "производства средств потребления" делаются попытки создать всё более изощрённые "производства средств производства".На чём основано мнение? И что подразумевается под "производством средств потребления"/"производством средств производства"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 18:09 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЗапахло марксизмом )))Все это детские шалости ... Маркс "смущенно стоит в сторонке" перед глубиной ниже приведенного суждения: "Нельзя игнорировать критерии утопического субъективизма в связи с ультрарадикальными взглядами на реально существующее :) Ну, это и понятно, поскольку ведь каждый индивидуум метафизически самосоставляет абстракцию" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 20:06 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Вася Уткин, вы написали много кода. Спасибо вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 20:30 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
CEMbЕсли ты хочешь в рантайме - интерфейсы. Если ты хочешь из других библиотек - интерфейсы для работы с другими библиотеками. Не надо на меня так смотреть, в общем случае непонятно, что такое "из других библиотек", или уточняй, что конкретно ты хочешь, или используй интерфейс к сферическому вакуумному классу. опять же, с утра нашёл, но ещё не смотрел std::type_info Вы... как и в всякий сишник живете в мире классического (стационарного ООП). В мире который был фундаментально обоснован лет 30 назад теоретиками системного анализа. Этот мир рос и развивался в условиях главенствующей на тот момент программно-аппаратной архитектуры. А именно - ограниченного объема ОП. Двух-фазного цикла разработки. Компилляция-линковка. И жестокой экономии всего-всего. Разрядной сетки указателей. RTTI, и мета-информации о среде исполнения. Фактически рантайм для С++ как таковой не существует. Он есть в ОС, файловой системе и состоянии сетевого окружения. В такой парадигме жизненный цикл ПО очень прост. Баг или дефект НЕВОЗМОЖНО исправить без шатдауна процессе и подмены его на обновленный образ процесса который вы предварительно собрали. Всякие технологии плагинов или динамических библиотек - не тривиальны. Не дружат с ООП. И вообще никоим образом не соотносятся с С++ разработкой. Грубо говоря С++ ничего вам не дает для контроля за состоянием рантайма. А крупные бизнес приложения сегодня требуют развитого и модульного рантайма. В частности - способности на ходу подменять логику различных модулей. Я не сильно разбирался как дело с этим обстоит в С++ и Unix OS но по моим скромным знаниям только несколько ОС обеспечивают такие возможности. Но это.. уровень API OS. Поблагодарим за это архитекторов. Но не господина Бьярне. Он здесь - непричем. Он - ничего не сделал для развития именно этого направления. Видимо для него рантайм не важен. Мне это почему-то напоминает фундаментальную средневековую геометрию+арифметику которая никогда не изучала движение (дифференцирование) а рассматривала мир в состоянии покоя. Архитектура. И ее формы. Любое движение - было ересью. Мдя... Но вернемся к нашим дебатам. Я прошу вас убрать сарказм. И понять тренд о котором я говорю. Я ни в коем случае не являюсь хейтером С++. Я просто инженер-практик. И я указываю (и буду указывать) на некоторые недостатки. Мои же коллеги к сожалению видят в этом выпад и бросаются защищать свои идеомы. Но я при этом нахожусь в их же лагере. Я-же и защищаю. Вот такой вот дуализм. Давайте как-то в этом ключе. И я вас прошу убрать из нашего треда акценты на мою персону. Мне право не очень приятно когда мне подмигивают, передают приветы и пишут "смищные щютки". Я с вами лично не знаком и такая фамильярность на меня производит неприятное впечатление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 20:53 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonВася Уткин, вы написали много кода. Спасибо вам. Считаю рабочий пример лучше тысячи слов болтовни Или вот: http://coliru.stacked-crooked.com/a/02b9da4741b9d88a Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 20:59 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Далее. По поводу следующего сорца. Код: plaintext 1. 2. 3. 4. Насколько я понял здесь карта (мапа/хешмапа/табличка/хештабличка/отображение выберете синоним) предлагается в качестве репозитария для хранения свойств объекта. В качестве бонуса автор также предлагает полиморфизм типов. Тоесть можно запихнуть в качестве value любое значение их трех известных этой системе типов. Хотя для меня, избалованного платформерами такой небольшой бонус не особо интересен. Тем более что он ограничен перечислением. В целом данный пример хорош. Он очень напоминает реализацию JavaScript-объекта. Правда здесь я-бы проверил на сохранения порядка полей. Это важно для ORM и для общих сведений об объекте. Никто не может просто так по приколу поменять ранг (или порядок следования) полей. В целом в данном примере С++ как конструктор мета-языка не особо хорош. Мне непонятно зачем так много букв и зачем автор переопределял операторы вывода. Я это вообще не заказывал. Здесь также нет сведений о типе. Я-бы все таки хотел иметь возможность проверять instanceOf(..) Возможно автор предлагает реализовать DuckTyping но это надо как-то отметить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:21 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonА крупные бизнес приложения сегодня требуют развитого и модульного рантайма. В частности - способности на ходу подменять логику различных модулей. 1. Какие приложения это требуют? 2. Нафига? 3. Какие бизнес приложения это позволяют? 4. Что случится с бизнес-процессом, когда половина выполнялась на одной логике и не окончив БП ее "подменили"? Вроде документум такое позволяет, хранится столько версий приложения, сколько открытых БП... но.... вместо сложностей диплоя, появляются сложности администрирования, что бы тот бардак, который в пром. базе накапливается корректно удалить. Ну и сложность саппорта, когда пользователь говорит "не работает", а в системе каждый БП выполняется на свой версии и пойди пойми, что у него происходит. Вся требуемая модульность замечательно решается за счет модульности ))) Переключили систему/пользователей на резервный сервер. Обновили, перезапустили модуль. Переключили систему обратно. Обновили, перезапустили резервный сервер. При чем тут C++ мне совершенно не понятно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:23 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonДалее. По поводу следующего сорца. Код: plaintext 1. 2. 3. 4. Насколько я понял здесь карта (мапа/хешмапа/табличка/хештабличка/отображение выберете синоним) предлагается в качестве репозитария для хранения свойств объекта. В качестве бонуса автор также предлагает полиморфизм типов. Тоесть можно запихнуть в качестве value любое значение их трех известных этой системе типов. Хотя для меня, избалованного платформерами такой небольшой бонус не особо интересен. Тем более что он ограничен перечислением. В целом данный пример хорош. Он очень напоминает реализацию JavaScript-объекта. Правда здесь я-бы проверил на сохранения порядка полей. Это важно для ORM и для общих сведений об объекте. Никто не может просто так по приколу поменять ранг (или порядок следования) полей. В целом в данном примере С++ как конструктор мета-языка не особо хорош. Мне непонятно зачем так много букв и зачем автор переопределял операторы вывода. Я это вообще не заказывал. Здесь также нет сведений о типе. Я-бы все таки хотел иметь возможность проверять instanceOf(..) Возможно автор предлагает реализовать DuckTyping но это надо как-то отметить. Это не бонус, а ран-тайм типизация в С++ о которой вы ничего не знали. Очень высокомерно и смешно, что вы чего-то тут заказывали Открою ещё секрет std::list - он сохроняет порядок. Привел пример получения индекса типа, но оказывается сведений о типе нет. Наверное не всем дано разобраться в таком большом коде ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:35 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
1. Какие приложения это требуют? 2. Нафига? 3. Какие бизнес приложения это позволяют? 4. Что случится с бизнес-процессом, когда половина выполнялась на одной логике и не окончив БП ее "подменили"? Leonid Kudryavtsev, я не могу ответить вам на все вопросы не нарушив при этом соглашение о неразглашении. Скажу только что у заказчика поддержка OSGI описана в главном SR. Что случается если логика одного модуля подменяется? Ну если вы знаете про шаблон прокси-объекта то дальше сами можете догадаться. Ничего не происходит. Просто начинает работать новая версия. Смысл и семантика того что происходит с данными разумеется ложится на сектор devops. Они решают когда ставить обновление и как. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:39 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonИ я вас прошу убрать из нашего треда акценты на мою персону.Да вообще вот не пойму, почему многие часто любое суждение с которым они не согласны акцентируют чуть ли не с "личной обидой". И после якобы "обиды" в отместку /вообщем не знаю что у них на уме/ производят всякие "нападки" на оппонента? PS: Сказанное мной мне действительно не понятно, так как у меня ни когда не возникало желание кого-то духовно "ущемить" ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:43 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevВся требуемая модульность замечательно решается за счет модульности ))) Переключили систему/пользователей на резервный сервер. Обновили, перезапустили модуль. Переключили систему обратно. Обновили, перезапустили резервный сервер. При чем тут C++ мне совершенно не понятно. Я не утверждаю что в С++ это невозможно. Я просто говорю что существуют ряд нерешаемых годами вопросов которые комитет мог-бы поставить на обсуждение. Уверен что реквесты существуют. Разумеется мой пример с OSGI был просто приведен как первый попавшийся с потолка. Есть много способов дружить микро-сервисы между собой. Но попробуйте ПОСТАВИТЬ задачу в терминах С++. Попробуйте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:44 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Вася УткинЭто не бонус, а ран-тайм типизация в С++ о которой вы ничего не знали. Очень высокомерно и смешно, что вы чего-то тут заказывали Открою ещё секрет std::list - он сохроняет порядок. Привел пример получения индекса типа, но оказывается сведений о типе нет. Наверное не всем дано разобраться в таком большом коде ) Ну классно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:46 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012maytonИ я вас прошу убрать из нашего треда акценты на мою персону.Да вообще вот не пойму, почему многие часто любое суждение с которым они не согласны акцентируют чуть ли не с "личной обидой". И после якобы "обиды" в отместку /вообщем не знаю что у них на уме/ производят всякие "нападки" на оппонента? PS: Сказанное мной мне действительно не понятно, так как у меня ни когда не возникало желание кого-то духовно "ущемить" ... Вообще-то вы ошиблись. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:47 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
maytonВообще-то вы ошиблисьSorry. Неудачно привел ваш ответ CEMb. Пост не был вызван тем, что я что-то "принял на свой счет". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:51 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Владимир2012PS: Сказанное мной мне действительно не понятно... Это самая сильная фраза, которую вы сказали! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 21:51 |
|
||
|
Куда катится C++
|
|||
|---|---|---|---|
|
#18+
Вася УткинЭто самая сильная фраза, которую вы сказали!Угу ... Такое бывает с любым кто не придерживается правила - "Где просто - там ангелов со сто. Где мудрено - там ни одного". PS: Буду исправляться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.09.2016, 22:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2018431]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
69ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
296ms |
get tp. blocked users: |
1ms |
| others: | 11ms |
| total: | 421ms |

| 0 / 0 |
