powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Куда катится C++
285 сообщений из 285, показаны все 12 страниц
Куда катится C++
    #39277664
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наблюдая за развитием языка, я немного прихожу в ужас...

Мало того, что и так не самый простой язык программирования усложняется, но еще проблема в том, что он развивается в разные стороны, которые друг другу противоречат.

Сильное развитие было в сторону мета-и функционального программирования.
Но первое потребует в конечном итоге compile time computation, а второе - больше динамики в языке, rtti или даже динамически типы.

Ни того, ни другого нет, на чем писать в compile time не понятно...

в общем, я в смятении...


P. S. это все после изучения шизонутый boost any & variant...

----
Читал хинты оракла. Много думал...
...
Рейтинг: 0 / 0
Куда катится C++
    #39277715
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivв общем, я в смятении...
разделится на старый и новый - в итоге два языка будет, если новый выживет - имя получит вместо цифирок
...
Рейтинг: 0 / 0
Куда катится C++
    #39277723
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Наболело...

По сабжу плюс тащемта. Думаю что мы скорее всего неизбежно получим форки.
Будет несколько "плюсов". Один - старый и консервативный который будет по сути
заморозкой стандарта. И будет масса экспериментальных.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277737
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНаболело...

По сабжу плюс тащемта. Думаю что мы скорее всего неизбежно получим форки.
Будет несколько "плюсов". Один - старый и консервативный который будет по сути
заморозкой стандарта. И будет масса экспериментальных.

мне даже не кажетЬся, это давно случилось. мир С++ давно смог раделит[ ]ся на консервативный STL и экспериментальный Boost.

а еще реальный мир никак не выкатитЬся из ультраконсервативного понятия C with Objects - это когда используетЬся подмножество C++, из которого выкинута вся хрень что про темплейты и большая часть STL, и разрешаетЬся использовать только то базовое, что есть в любых иных ООП языках - наследование, полиморфизм, инкапсуляция, при том, что даже перегрузка операторов под запретом (такое популяризируетЬся в геймдеве), просто потому что такого нет ни в одном другом популярном языке (Java, PHP).

не хочетЬся экспериментов над собственной психикой - не занимайся ими, живи свободным, и не тяни к...шки в рот, ну или не жуй и не глотай их.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277743
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПо сабжу плюс тащемта. Думаю что мы скорее всего неизбежно получим форки.
Будет несколько "плюсов". Один - старый и консервативный который будет по сути
заморозкой стандарта. И будет масса экспериментальных.
Очень забавно читать глубокомысленные комменты от людей, которые вообще не понимают как работает стандартизация в С++ )))

Начиная с С++11 в язык добавляется только то, что уже реализовано всеми основными вендорами компиляторов или по единогласному решению этих вендоров и еще кучи других умных людей.
Поэтому никаких форков не может быть в принципе, ну разве что группа профи с форума sql.ru сделает тот самый, истинно правильный С++ .
...
Рейтинг: 0 / 0
Куда катится C++
    #39277751
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНаблюдая за развитием языка, я немного прихожу в ужас...Как по мне, то все что мне нужно для "счастливого программирования" в C++ имеется.
Остальное - пустая трата времени ... /хотя впрочем и не отвергаю "новшества"/.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277757
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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

остальные взаимо несовместимые примеров форков приводить уже просто лень.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277768
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
Это не форки, а экспериментальные фичи, которые либо попадут в стандарт либо будут выключены, когда решение не добавлять в стандарт будет принято.
Собственно я выше и сказал, что наличие таких расширений это часть процесса стандартизации.
Просто не все поняли )))
...
Рейтинг: 0 / 0
Куда катится C++
    #39277772
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 - это просто такое нечто экспериментальное, ага, а не фундаментальная основа работы их среды разработки.

угар.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277774
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyПоэтому никаких форков не может быть в принципе
Ммм.. звучит как-то слишком категорично. Может на гитхабе такие форки
уже и есть. (Я правда не искал пока).
...
Рейтинг: 0 / 0
Куда катится C++
    #39277777
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaC++ Builder
Это вообще не С++ с момента появления сего чуда.
Поэтому что там у них внутри происходит мне пофиг, и к развитию языка это не имеет отношения.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277789
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 в части кодогенерации и прочей оптимизации - за них это сделают другие.
но они это делают не в целях сделать лучше тебе, потребителю. они просто пытаются выдержать конкуренцию и сократить свои затраты. говоря проще - чтоб просто выжить.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277794
Фотография Анатолий Широков
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaугар.

Ну вот и проспись, а то несешь пургу и на здоровую голову свою болезнь головного мозга проецирует. Форк - официальное отмежевание от тела основной разработки. C++ не имеет официальной реализации, а есть стандарт, который мерило того, что называется well-formed С++ программой. То что там борланд создал недо С++ это его личная проблема, если тебе мил __published ты можешь мило до конца жизни его использовать, но при этом твоя программа будет на Borland C++, который слабо соотносится с тем, что считается современным С++.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277795
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskynojavaC++ Builder
Это вообще не С++ с момента появления сего чуда.

Поэтому что там у них внутри происходит мне пофиг, и к развитию языка это не имеет отношения.
точно! это не C++, это этот, как его, немерле! или хаскель?

Anatoly MoskovskyПоэтому что там у них внутри происходит мне пофиг, и к развитию языка это не имеет отношения.
твоя постоянная попытка взгромоздить на себя корону - она мягко говоря не смешна.

учитывая то, что ты вряд-ли участвовал хоть в одном более-менее значимом в глобальном масштабе проекте.

Модератор: nojava, утихомирься, Ты не знаешь, в чём он там участвовал, и если споришь, приводи объективные аргументы, а не переходи на личности. Плюсомёт наготове.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277800
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНаболело...

По сабжу плюс тащемта. Думаю что мы скорее всего неизбежно получим форки.
Будет несколько "плюсов". Один - старый и консервативный который будет по сути
заморозкой стандарта. И будет масса экспериментальных.

Ну, один форк уже есть -- D.
И даже два -- ещё есть старый добрый консервативный (и убогий) С.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277801
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaучитывая то, что ты вряд-ли участвовал хоть в одном более-менее значимом в глобальном масштабе проекте.
Конечно не участвовал. Иначе мне было бы стыдно за то что я натворил, и я бы на форумах писал бы анонимно )))
...
Рейтинг: 0 / 0
Куда катится C++
    #39277803
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий Широковnojavaугар.

Ну вот и проспись, а то несешь пургу и на здоровую голову свою болезнь головного мозга проецирует. Форк - официальное отмежевание от тела основной разработки.
вон выше приведен пример официального форка clang - двумя компаниями - microsoft и embarcadero.

так что тебе велкам в клуб сидящих в луже


Анатолий Широков C++ не имеет официальной реализации, а есть стандарт, который мерило того, что называется well-formed С++ программой. То что там борланд создал недо С++ это его личная проблема, если тебе мил __published ты можешь мило до конца жизни его использовать, но при этом твоя программа будет на Borland C++, который слабо соотносится с тем, что считается современным С++.

юношеский максимализм такой максимализм. и недо с++, и слабые сочетания, с сильной типизацией и лямбда замыканиями.
еще какие откровения будут?

отдельно, особенно порадовало про well-formed. ну да ладно.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277804
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaмне даже не кажетЬся, это давно случилось. мир С++ давно смог раделит[ ]ся на консервативный STL и экспериментальный Boost.


STL и Boost в одну дуду дудят. Мета и обобщённое программирование.
Так что нет тут разделения. Разделение в другом месте -- STL/Boost и старые библиотеки типа MFC/QT/POCO/APR.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277818
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Анатолий ШироковНу вот и проспись, а то несешь пургу
Не обращайте внимания, у нас завелся новый местный форумный дурачок, когда скучно, с ним весело переругиваться )))

А так-то он конечно живое подтверждение утверждения, что аноним хуже древнего грека.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277825
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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, действительно неплохом языке чисто внешне, но с никудышней реализацией среды выполнения на практике.

разучились-то, писать софт модульно.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277827
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyАнатолий ШироковНу вот и проспись, а то несешь пургу
Не обращайте внимания, у нас завелся новый местный форумный дурачок, когда скучно, с ним весело переругиваться )))

А так-то он конечно живое подтверждение утверждения, что аноним хуже древнего грека.

в клубе сидящих в луже появилась группа взаимоподдержки? когда кончились аргументы переходим на "дурачок, проспись, шизофреник"?

да, вы так всех тут победите. два раза. или даже три :)

продолжайте
...
Рейтинг: 0 / 0
Куда катится C++
    #39277830
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaкогда кончились аргументы
Это про корону чтоли аргументировать : )))
...
Рейтинг: 0 / 0
Куда катится C++
    #39277831
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДумаю что мы скорее всего неизбежно получим форки.
Будет несколько "плюсов". Один - старый и консервативный который будет по сути
заморозкой стандарта. И будет масса экспериментальных.И что в них будет? О_о
Можно хотя бы несколько пунктов назвать? И зачем делать форки кампелятера вообще, когда можно на сяхх написать вообще что угодно, не меняя кампелятер? Можно сделать вообще любую свою концепцию ООП. Да вообще можно сделать себе любую базу, оформить её как либу/шаблон/код, потом на её основе писать всё, что угодно.
maytonНаболело...а вот меня уже отпустило... ^__^
nojavaC++ стал настолько сложным и дорогим в разработкене стал он сложнее, в том и прелесть.
MasterZivНу, один форк уже есть -- Dфорк схх с пылесосом - не форк. -_-
...
Рейтинг: 0 / 0
Куда катится C++
    #39277833
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovskynojavaкогда кончились аргументы
Это про корону чтоли аргументировать : )))

да. почему нет? тебе это уже говорят не раз, твое ЧСВ не умиляет никого, убавляй накал-то.
слово я - вообще паразит, попробуй поставить на него фильтр, для начала

тогда тебя перестанут воспринимать как заносчивого, но шаблонированного зубрилку.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277840
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaтогда тебя перестанут воспринимать как заносчивого, но шаблонированного зубрилку.
А почему вы про себя во множественном числе да еще и в третьем лице? )))
...
Рейтинг: 0 / 0
Куда катится C++
    #39277843
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbnojavaC++ стал настолько сложным и дорогим в разработкене стал он сложнее, в том и прелесть.

угу. ты сравни объем кода clang и gcc, по годам - и рост размера, и рост количества коммитов. репозитории то доступны.
а так да, никакого роста сложности не наблюдается :)
...
Рейтинг: 0 / 0
Куда катится C++
    #39277861
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojavaугу. ты сравни объем кода clang и gcc, по годам - и рост размера, и рост количества коммитов. репозитории то доступны.а сам язык-то тут при чём? о_О
я как писал 20 лет назад, могу в том же духе писать и сейчас. А могу и по-новому. Т.о. сложность не поменялась.
все...!хватит/давайте_не устраивать оффтопные личностные какачи.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277897
nojava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbnojavaугу. ты сравни объем кода clang и gcc, по годам - и рост размера, и рост количества коммитов. репозитории то доступны.а сам язык-то тут при чём? о_О

при том, что я не говорил, что там пользователю будет сложнее или нет.

я говорил про то, что прогресс не стоит на месте, появляются все более мощные оптимизации, добавляются процессоры и наборы инструкций расширяются в существующих, и прочий рост энтропии происходит.

соотвественно растут затраты компаний написателей языков на просто то, чтоб догнать clang/gcc.
при том что качество их реализаций оставляет желать лучшего - и по времени компиляции, и по оптимизациям и прочей эффективности - это особенно хорошо видно в jenkins, когда гоняешь многоплатформенные тесты :)

потому корпоративный мир закономерно начинает мочить свои ветки реализаций, переходя на общую кодовую базу - clang.
перешли бы на более развитый GCC, но там GPL висит как гиря.

такое-же происходит и в мире вебстроения, скоро будет один движок для рендеринга HTML - webkit, остальное отомрет как мамонты.

и это хорошо, меньше энтропии и несовместимостей.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277906
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nojava, ааа... я неправильно распарсил фразу :) ага, теперь ясно (раскрутил всё вверх по стеку)
...
Рейтинг: 0 / 0
Куда катится C++
    #39277968
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbИ что в них будет? О_о
Можно хотя бы несколько пунктов назвать? И зачем делать форки кампелятера вообще, когда можно на сяхх написать вообще что угодно, не меняя кампелятер? Можно сделать вообще любую свою концепцию ООП. Да вообще можно сделать себе любую базу, оформить её как либу/шаблон/код, потом на её основе писать всё, что угодно.

Я просто приводил пример кода с рефлексией который пока принципиально
не воспроизводим в С++. Чтобы он взлетал нужно очень много построить
вокруг самого language и создать рантайм. Для С++ - это нетривиальная задача.
К сожалению веб и biz-apps очень часто решают свои задачи через рефлексию. Или взять ту-же
самую аналогию из JS где JSON-документ порождает сущность самой среды
которая по сути есть уже инстанциированный объект и без всяких
оберток.
...
Рейтинг: 0 / 0
Куда катится C++
    #39277983
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbMasterZivНу, один форк уже есть -- Dфорк схх с пылесосом - не форк. -_-
Я предлагаю его считать форком. Его создатель до этого кодил Symantec C++, потом Mars C++ e.t.c .
И для меня этого достаточно. И это есть форк. Идейный.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278143
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: nojava, между "ты не прав, потому что" и "сними корону, неуч" есть разница. Отдохни пару дней, пожалуйста.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278208
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нормальный топик ведь. Давайте продолжим.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278254
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНормальный топик ведь. Давайте продолжим.
Дык, уже все обсудили в топике "Пятничный бунт" с аналогичной сутью претензий ))
...
Рейтинг: 0 / 0
Куда катится C++
    #39278299
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У нас был Си. Потом появился так называемый C with classes, который и стал основой для С++. Но почему появление в языке такой сущности как классы, привело к тому, что появился новый язык С++, а не к расширению языка Си? Ведь возможность разработки на Си в объектно-ориентированном стиле существовала и на тот момент, и явная сущность класса в каком-то смысле является синтаксическим сахаром. С момента появления языка С++ в нем произошло большое число изменений, но достаточно ли их для того, чтобы появился новый язык, и нужно ли это. Мне это неизвестно, но мне кажется, что по вопросу в данной теме было бы полезнее размышлять в таком ключе
...
Рейтинг: 0 / 0
Куда катится C++
    #39278300
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А появление так называемых нелегальных 'форков', на мой взгляд связано с тем, что серьезные проекты требует не одного месяца и не одного года, однако С++ изменяется(в данном случае возможно правильно написать 'развивается', но я не могу судить) слишком быстро, потому разработчикам нужна твердая отправная точка. Ещё не вышел новый стандарт, на тот момент когда мы обсуждали модули. Вот он вышел, в нем нет модулей, но мы уже начинаем ждать их в следующем стандарте языка
...
Рейтинг: 0 / 0
Куда катится C++
    #39278306
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ просто приводил пример кода с рефлексией который пока принципиально
не воспроизводим в С++.а, точно, никак пока нормально не реализовать. о_о
...
Рейтинг: 0 / 0
Куда катится C++
    #39278315
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
#include <hal/f2xx/hal.h>
#include <system.h>

#include <display/drivers/pcd8544.h>
#include <display/display.h>
#include <softspi.h>

using System = Stm32::System<Stm32::Hal>;

using Spi = Stm32::SoftSpi;
using Driver = Stm32::Pcd8544<Spi>;
using Display = Stm32::Display<Driver>;

int main(void)
{
	System system;
	system.rcc.setInternalClock();
	
	system.rcc.startPortC();
	system.rcc.startPortG();
	auto& portc = system.portC.out();
	auto& portg = system.portG.out();

	system.portC.setAsOut(7);
	auto& cs = portc.bit(7);

	system.portG.setAsOut(4);
	auto& clock = portg.bit(4);
    
	system.portG.setAsOut(6);
	auto& data = portg.bit(6);
	system.portG.setAsOut(8);
	auto& dc = portg.bit(8);
	system.portC.setAsOut(9);
	auto& reset = portc.bit(9);
	
	Spi spi(clock, data, cs);
    spi.enable();
	Driver driver(spi, reset, dc);
	Display display(driver);
}



все прекрасно, главное все делать на стэке :)
...
Рейтинг: 0 / 0
Куда катится C++
    #39278319
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_k,

хотя мне пришлось сделать хак:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
extern "C" void __aeabi_unwind_cpp_pr0 (void)
{
}

 void __aeabi_unwind_cpp_pr1 (void)
{
}

 void __aeabi_unwind_cpp_pr2 (void)
{
}



без этого не линкуется. хз, что это такое :)
...
Рейтинг: 0 / 0
Куда катится C++
    #39278338
teo609
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Книжка Саттера привела к мысли, что написать можно многое, по документации (MSDN), а правильным будет далеко не все. Т.е полно скрытых возможностей, т.е. по документации нормальных, выстрелить себе в ногу. Вряд ли это так в других языках. Я не пробовал много но на VB и С#, насколько знаю, такого нет.
Для того, чтобы выдавать код, который не будет скрыто стрелять в ноги, нужно иметь неслабую голову и хорошо знать то, что скрыто глубоко под капотом. Т.е. то, во что реально разворачиваются шаблоны. Либо надо иметь книжку от таких парней по этой теме.
Стоит еще и рассмотреть то, насколько удобно все это для изучения новичками. Чем больше изучать, по сравнению с другими языками, тем меньше студентов придет на этот язык, особенно при том уровне зарплат. Но даже придя, они не будут знать особенности, и будут выдавать код, не противоречащий документации, компилирующийся без предупреждений, но стреляющий по ногам. И количество их будет сокращаться. Все это не очень хорошо для развития языка. Все это повод для руководителей по разработке на плюсах подумать о том, чего им хотеть от языка в перспективе.
С другой стороны, плюсы критикуют в неслабой доле за отсутствие в стандартной библиотеке каких-то фич, сетевых например. Вот их стоило бы наверное вводить, но без усложнения самого языка.
Сами расширения, имхо, стоило бы вводить с минимизацией возможностей скрытой стрельбы по ногам.

А еще, больше всего, в чем нуждаются плюсы, это некий механизм слежения за тем, чтобы типы данных не лазили в чужую память, и отслеживали, если кто-то залез в их память.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278350
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

с++ отличается от с не только наличием классов.
с++ принципиально язык со строгой типизацией.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278382
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryУ нас был Си. Потом появился так называемый C with classes, который и стал основой для С++. Но почему появление в языке такой сущности как классы, привело к тому, что появился новый язык С++, а не к расширению языка Си? Ведь возможность разработки на Си в объектно-ориентированном стиле существовала и на тот момент, и явная сущность класса в каком-то смысле является синтаксическим сахаром. С момента появления языка С++ в нем произошло большое число изменений, но достаточно ли их для того, чтобы появился новый язык, и нужно ли это. Мне это неизвестно, но мне кажется, что по вопросу в данной теме было бы полезнее размышлять в таком ключепо моему, на эти вопросы есть ответы здесь .
...
Рейтинг: 0 / 0
Куда катится C++
    #39278392
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
teo609А еще, больше всего, в чем нуждаются плюсы, это некий механизм слежения за тем, чтобы типы данных не лазили в чужую память, и отслеживали, если кто-то залез в их память.Не плюсы, а stl. Не всем девелоперам нужна автоматическая следилка за чужой памятью.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278507
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги. Я долго думал и пришел к следующему.

Чтобы понять отправную точку куда двигаться - нужно сначала
обозначить текущие 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.
Низкий или средний.

Далее (чуть позже когда я нарисую таблички) я попрошу вас, коллеги
проставить для известных вам языков значения измерений.

Когда накопится статистика мы получим гиперкубик с измерениями.
Причем значения будут вещесвтенные. Например эффективность можно
будет оценивать в процентах.

Вот такое вот предложение.

Прошу высказываться.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278655
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как поднять голосование? Ну... можно в скруле создать по каждому language<=>axis отдельный топик.

Или второй вариант. Я в google-docs создаю табличку (типа Excel) выдаю права мемберам
и каждый ее правит проставляя цифирки или checkbox.

А потом я формирую сводный отчотик.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278798
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак поднять голосование? Ну... можно в скруле создать по каждому language<=>axis отдельный топик.

Или второй вариант. Я в google-docs создаю табличку (типа Excel) выдаю права мемберам
и каждый ее правит проставляя цифирки или checkbox.

А потом я формирую сводный отчотик.

Там на гугле ещё какая-то голосовалка есть, гугл - опрос...
...
Рейтинг: 0 / 0
Куда катится C++
    #39278870
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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 в файле где он прописан. Или это уже возможно сейчас?
...
Рейтинг: 0 / 0
Куда катится C++
    #39278871
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал как реализовано создание голосования через гугло-формы.
Это капец какой-то. Чуть-ли не своё ПО надо создавать.

Попробовал на скруле... хреново. Скруль позволяет на 1 топик создать только одно голосование.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278882
chritich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton 3. Качество кода с точки зрения восприятия человеком.

Например Delphi/Pascal имеет практическую удобную форму
подачи алгоритма которая понятна даже не знающему программирование.



это как? , можно пример
...
Рейтинг: 0 / 0
Куда катится C++
    #39278894
chritich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
на самом деле есть 2 абсолютных показателя эффективности яп:
1)скорость написания
2)скорость чтения

Большинство новых фич улучшают первое, неготивно влияя на второе.
увы, всё в угоду ленивым рукожопам, которые не в состоянии реализовать
класс с перегружеными операторами
...
Рейтинг: 0 / 0
Куда катится C++
    #39278899
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chritichmayton 3. Качество кода с точки зрения восприятия человеком.

Например Delphi/Pascal имеет практическую удобную форму
подачи алгоритма которая понятна даже не знающему программирование.



это как? , можно пример
Ну.. например английский язык. Если читать Delphi-алгоритм то получается почти осмысленный
текст. Этим часто пользуются в учебниках по дискретной математике и теории графов при
описании какой-то идеи.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278905
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chritichна самом деле есть 2 абсолютных показателя эффективности яп:
1)скорость написания
2)скорость чтения

Есть такой тезис что программист 90% времени занят чтением текст программы. Либо документации.
Я не люблю эту фразу но это "всем известно" или "очевидно".

Если вы старжил форума то вы наверняка знаете студентика который кодил ультра-короткие языки.
Предлагаю погуглить. Там много было сломано копий и разбито клавиатур... Мдя.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278968
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryУ нас был Си. Потом появился так называемый C with classes, который и стал основой для С++. Но почему появление в языке такой сущности как классы, привело к тому, что появился новый язык С++, а не к расширению языка Си? Ведь возможность разработки на Си в объектно-ориентированном стиле существовала и на тот момент, и явная сущность класса в каком-то смысле является синтаксическим сахаром. С момента появления языка С++ в нем произошло большое число изменений, но достаточно ли их для того, чтобы появился новый язык, и нужно ли это. Мне это неизвестно, но мне кажется, что по вопросу в данной теме было бы полезнее размышлять в таком ключеПочитай вот эту книжку:
https://www.amazon.com/gp/product/0123745144
Много-много вопросов отпадут.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278972
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему же С++ не С и таков, как есть? Я бы почитал у автора
The Design and Evolution of C++
...
Рейтинг: 0 / 0
Куда катится C++
    #39278974
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И да, о "катится С++". Можно почитать, куда его хочет катить старина Бьярне...
...
Рейтинг: 0 / 0
Куда катится C++
    #39278982
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chritich1)скорость написания
2)скорость чтения

Большинство новых фич улучшают первое, неготивно влияя на второе.
Ну это надо еще доказать.))

Например, лямбды намного улучшают читаемость, т.к. повышают локальность кода реализующего алгоритм (в отличие от функций-колбэков).
Ждем ваши примеры ухудшения читаемости (которых большинство).

maytonголосование
Не заморачивайтесь, все равно здесь выборка нерепрезентативная. Да и собственно нет ее, этой выборки ))
...
Рейтинг: 0 / 0
Куда катится C++
    #39278988
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyНе заморачивайтесь, все равно здесь выборка нерепрезентативная. Да и собственно нет ее, этой выборки ))
Ничего. Я вижу аудиторию. И я буду делать в уме поправку.
Но даже такие сведения для меня будут ценны.
...
Рейтинг: 0 / 0
Куда катится C++
    #39278989
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Куда катится C++
    #39279543
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_kalex_k,

хотя мне пришлось сделать хак:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
extern "C" void __aeabi_unwind_cpp_pr0 (void)
{
}

 void __aeabi_unwind_cpp_pr1 (void)
{
}

 void __aeabi_unwind_cpp_pr2 (void)
{
}



без этого не линкуется. хз, что это такое :)
Обработка исключений. Запрети их и не используй.

https://gcc.gnu.org/onlinedocs/libstdc /manual/using_exceptions.html
...
Рейтинг: 0 / 0
Куда катится C++
    #39279740
chritich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonchritichпропущено...

это как? , можно пример
Ну.. например английский язык. Если читать Delphi-алгоритм то получается почти осмысленный
текст. Этим часто пользуются в учебниках по дискретной математике и теории графов при
описании какой-то идеи.
хотелось бы увидеть пример кода такого алгоритма на дельфях, очень сомнительно что там текст более осмысленный чем у других.
А популярность делфей среди такой аудитории связана исключительно с развитой инфраструктурой для програмирования мышкой
...
Рейтинг: 0 / 0
Куда катится C++
    #39279759
chritich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly Moskovskychritich1)скорость написания
2)скорость чтения

Большинство новых фич улучшают первое, неготивно влияя на второе.
Ну это надо еще доказать.))

Например, лямбды намного улучшают читаемость, т.к. повышают локальность кода реализующего алгоритм (в отличие от функций-колбэков).
Ждем ваши примеры ухудшения читаемости (которых большинство).

ну я ж не утверждаю, что все новые фичи -зло.
А лямбды надо было добавить в стандарт еще тогда, когда туда добавили <algorithms>.

Итак, абсолютное зло из нового стандарта:
ключевое слово auto, скрывает имена типов, читать код становится сложнее - это очевидно. Это, своего рода,- уход от статической типизации, ведь статическая типизация - не только помогает отловить ошибки при компиляции, но и повышает читабельность кода.
...
Рейтинг: 0 / 0
Куда катится C++
    #39279767
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chritichИтак, абсолютное зло из нового стандарта:
ключевое слово auto, скрывает имена типов, читать код становится сложнее - это очевидно.
Нет. Не очевидно. И у меня обратное мнение.
Таким образом ваше слово против моего. Пока не тянет на доказательство.
Приведите например кусок кода, где идет цикл по итератору, и убедите меня что явное упоминание типа итератора повышает читаемость )))
...
Рейтинг: 0 / 0
Куда катится C++
    #39279787
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+1

auto & lambda очень повышают читабельность. Без них вообще не вижу смысла заниматься набиванием типов по 3 раза на функцию.
...
Рейтинг: 0 / 0
Куда катится C++
    #39279833
critich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskychritichИтак, абсолютное зло из нового стандарта:
ключевое слово auto, скрывает имена типов, читать код становится сложнее - это очевидно.
Нет. Не очевидно. И у меня обратное мнение.
Таким образом ваше слово против моего. Пока не тянет на доказательство.
Приведите например кусок кода, где идет цикл по итератору, и убедите меня что явное упоминание типа итератора повышает читаемость )))
вот пример кода, что напечатается в поток вывода?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
template<typename T>
void print(const T &)
{
	cout<<"print function for this type is undefined"<<endl;
}

template<>
void print(const Employee &emp)
{
	cout<<"Employee at "<<hex(this)<<", name:"<<emp.name()<<" ,age:"<<emp.age()<<", spec."<<emp.specification()<<endl;
}

void printSomething()
{
	auto some=getThing();
	print(some);
}
...
Рейтинг: 0 / 0
Куда катится C++
    #39279834
critich
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Siemargl+1

auto & lambda очень повышают читабельность. Без них вообще не вижу смысла заниматься набиванием типов по 3 раза на функцию.
офигеть, auto оказывается ещё и повышает читабельность
...
Рейтинг: 0 / 0
Куда катится C++
    #39279888
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl+1

auto & lambda очень повышают читабельность. Без них вообще не вижу смысла заниматься набиванием типов по 3 раза на функцию.
Про лямбда отчасти согласен, а auto это просто попытка упростить вышедший из под контроля синтаксис. Оно конечно лучше чем typedef на каждый чих,но тут плюс как и с лямбдами - не надо ломать голову для придумывания очередного осмысленного имени. Хотя не факт что это плюс, т.к. лишний повод не задумываться что пишешь.
...
Рейтинг: 0 / 0
Куда катится C++
    #39279904
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
critichвот пример кода, что напечатается в поток вывода?
Вообще-то перегрузка/специализация функций существует, чтобы не задумываться о том какая функция вызывается, а чтобы компилятор сам вызывал нужную в зависимости от типа.
Поэтому ответ на этот вопрос - напечатается содержимое объекта переданного в print.
...
Рейтинг: 0 / 0
Куда катится C++
    #39279990
Гость123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Anatoly MoskovskyПоэтому ответ на этот вопрос - напечатается содержимое объекта переданного в print.
Какой-то очень оптимистичный взгляд. Лично у меня несколько раз в году печатается содержимое временного объекта, который был создан из переданного объекта. Сам конечно виноват, что ленюсь все конструкторы с одним параметром объявлять explicit. Однако auto использую только там, где тип 100% понятен из окружающего кода(итераторы и некоторые другие гораздо более редкие случаи), в остальных случаях явно прописываю тип, чтобы мне, а не компилятору, было понятно с каким классом работаем и какая перегрузка функции будет вызвана.
...
Рейтинг: 0 / 0
Куда катится C++
    #39280009
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
critichSiemargl+1

auto & lambda очень повышают читабельность. Без них вообще не вижу смысла заниматься набиванием типов по 3 раза на функцию.
офигеть, auto оказывается ещё и повышает читабельность

auto повышает читаемость но снижает информативность.
...
Рейтинг: 0 / 0
Куда катится C++
    #39280089
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglОбработка исключений. Запрети их и не используй.

Отлично! Спасибо :)
...
Рейтинг: 0 / 0
Куда катится C++
    #39292342
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivSashaMercury,

с++ отличается от с не только наличием классов.
с++ принципиально язык со строгой типизацией.

Это я запомнил, потому удивился сегодня, когда перечитывал BS.
The C++ PL $7.4
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
void print (double );
void print (long);
void f ()
{
print(1L ); // print(long)
print(1.0) ; // print(double)
print(1) ; // error, ambiguous: print(long(1)) or print(double(1))?
}


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.
void print (int);
void print (const char*);
void print (double);
void print (long);
void print (char);
void h (char c , int i , short  s , float  f )
{
print (c ); // exact match: invoke print(char)
print (i ); // exact match: invoke print(int)
print (s ); // integral promotion: invoke print(int)
print (f ); // float to double promotion: print(double)
print (&#180;a &#180;); // exact match: invoke print(char)
print (4 9 ); // exact match: invoke print(int)
print (0 ); // exact match: invoke print(int)
print ("a "); // exact match: invoke print(const char*)
}



Думал, что строгая типизация в принципе не позволит такого. Но, даже если в том случае, если данные преобразования законны в рамках термина "строгая типизация", 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". Разве из этого не следует что у С++ всё-таки слабая типизация. Или лучше сказать "не сильная типизация", или это всё-же не так?
...
Рейтинг: 0 / 0
Куда катится C++
    #39292536
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryСегодня generally завтра у нас "special case". Разве из этого не следует что у С++ всё-таки слабая типизация
Из этого - не следует )))
...
Рейтинг: 0 / 0
Куда катится C++
    #39292636
BagaBaga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryДумал, что строгая типизация в принципе не позволит такого. Но, даже если в том случае, если данные преобразования законны в рамках термина "строгая типизация", BS ранее пишет о том, что существует некий оператор reinterpret_cast. ... Разве из этого не следует что у С++ всё-таки слабая типизация. Или лучше сказать "не сильная типизация", или это всё-же не так?
Нет, не следует. reinterpret_cast - это ... способ сказать компилятору "отвянь, я знаю что делаю" и выключить любые проверки. В любом случае, опытный программист всегда найдёт способ выстрелить себе в ногу... Так что С++ - это язык со строгой типизацией, кроме того случая (и для тех участков кода), когда вы сами сознательно заставляете его проверять поменьше. В обычной ситуации применять кувалду reinterpret_cast программисту для решения своих задач не требуется.
...
Рейтинг: 0 / 0
Куда катится C++
    #39292721
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySashaMercuryСегодня generally завтра у нас "special case". Разве из этого не следует что у С++ всё-таки слабая типизация
Из этого - не следует )))

А из чего это следует?) Или всё-таки у С++ строгая типизация
...
Рейтинг: 0 / 0
Куда катится C++
    #39292776
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryА из чего это следует?) Или всё-таки у С++ строгая типизация
Что такое строгая типизация и пригодны ли языки с нею для практического использования никто не знает.
Про С++ можно только сказать, что тут строже чем в С.
Например нельзя из void* присваивать в другие указатели.
А то, что например обратно можно, как раз и говорит что о полностью строгой типизации нет речи.
Но там где реально надо - проверка равенства типов есть.
Немножко даже добавили в С++11.
...
Рейтинг: 0 / 0
Куда катится C++
    #39292781
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury Или всё-таки у С++ строгая типизация

У С++ и С строгая типизация. Строгая, статическая.
То, что во время исполнения можешь по-разному трактовать участки памяти, это никак не влияет на вид типизации языка, это можно сказать такая суперфича языка -- иметь возможность интерпретировать как угодно просто любые байты памяти.
...
Рейтинг: 0 / 0
Куда катится C++
    #39292935
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему об этом ничего не сказано ни в стандарте ни в книгах BS? Вообще, нигде ничего не сказано однозначно о том, какая типизация у языка С++. Статическая? Это понятно. Но строгая или слабая мне не понятно. Я не нашел даже точного определения данных понятий. Но интуитивно я понимаю это как отсутствие возможностей неявного преобразования между типами явного небезопасного приведения типов
...
Рейтинг: 0 / 0
Куда катится C++
    #39292936
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как отсутствие возможностей неявного преобразования между типами И явного небезопасного приведения типов
...
Рейтинг: 0 / 0
Куда катится C++
    #39292943
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury,

язык с сильной типизацией - стрелять не годится.
А Ариан-5 без сильной типизации распадется на куски.
Впрочем, он и с сильной типизацией на куски таки распался.

нет у этих терминов хрустальных значений.
Они каучуковые - принимают форму контекста, в котором их пытаются использовать.
...
Рейтинг: 0 / 0
Куда катится C++
    #39292944
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobySashaMercury,

язык с сильной типизацией - стрелять не годится.
А Ариан-5 без сильной типизации распадется на куски.
Впрочем, он и с сильной типизацией на куски таки распался.

нет у этих терминов хрустальных значений.
Они каучуковые - принимают форму контекста, в котором их пытаются использовать.

Если это правда, то разговоры о строгой и слабой типизации языка есть разговоры о пустом месте
...
Рейтинг: 0 / 0
Куда катится C++
    #39293087
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryПочему об этом ничего не сказано ни в стандарте ни в книгах BS? Вообще, нигде ничего не сказано однозначно о том, какая типизация у языка С++. Статическая? Это понятно. Но строгая или слабая мне не понятно. Я не нашел даже точного определения данных понятий. Но интуитивно я понимаю это как отсутствие возможностей неявного преобразования между типами явного небезопасного приведения типов
Саш. Да на что нам эти словесные крючкотворства. Давай подумаем. Как часто нам в коде
нужно было делать кастинг (int64) -> (int) или (double) -> (int). Я не думаю что очень часто
но и без этого жить нельзя. Даункастинг нужно? Нужно. И хоть обложи язык законами и поправками
но программисту-то нужно делать свою работу.

Главное что я, как создатель своего ПО утверждаю, что я могу преобразовать (int64) -> (int)
и в данном алгоритме и я полагаю что все будет нормально.

И наличие строгости или не-строгости языка не влияет на мое решение.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293094
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryboobySashaMercury,

язык с сильной типизацией - стрелять не годится.
А Ариан-5 без сильной типизации распадется на куски.
Впрочем, он и с сильной типизацией на куски таки распался.

нет у этих терминов хрустальных значений.
Они каучуковые - принимают форму контекста, в котором их пытаются использовать.

Если это правда, то разговоры о строгой и слабой типизации языка есть разговоры о пустом месте

можно иногда википедию глянуть.
Там как откровенный мусорные статьи бывают (когда химики и географы про базы данных рассуждают), так и вполне годный.

При типизацию в русской версии +- годный текст.
Для начала - уж точно
https://ru.wikipedia.org/wiki/Сильная_и_слабая_типизация
...
Рейтинг: 0 / 0
Куда катится C++
    #39293208
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonSashaMercuryПочему об этом ничего не сказано ни в стандарте ни в книгах BS? Вообще, нигде ничего не сказано однозначно о том, какая типизация у языка С++. Статическая? Это понятно. Но строгая или слабая мне не понятно. Я не нашел даже точного определения данных понятий. Но интуитивно я понимаю это как отсутствие возможностей неявного преобразования между типами явного небезопасного приведения типов
Саш. Да на что нам эти словесные крючкотворства. Давай подумаем. Как часто нам в коде
нужно было делать кастинг (int64) -> (int) или (double) -> (int). Я не думаю что очень часто
но и без этого жить нельзя. Даункастинг нужно? Нужно. И хоть обложи язык законами и поправками
но программисту-то нужно делать свою работу.

Главное что я, как создатель своего ПО утверждаю, что я могу преобразовать (int64) -> (int)
и в данном алгоритме и я полагаю что все будет нормально.

И наличие строгости или не-строгости языка не влияет на мое решение.

Марк, дело в том, что в случае, если мы наверняка знаем что язык обладает строгой типизацией, то это автоматически даёт нам гарантию отсутствия определенных нежелательных видов поведения и как следствие значительно упрощает разработку. А первоначально я подумал, что Илья обозначил различие между Си и С++ в виде строгой типизации, но видимо я не так его понял.

booby, простите, но информация на той странице мне не понравилось, отсутствуют источники.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293229
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryМарк, дело в том, что в случае, если мы наверняка знаем что язык обладает строгой типизацией, то это автоматически даёт нам гарантию отсутствия определенных нежелательных видов поведения и как следствие значительно упрощает разработку. А первоначально я подумал, что Илья обозначил различие между Си и С++ в виде строгой типизации, но видимо я не так его понял.

Для тех кто которые кодили на Ассемблере вообще таких вопросов не возникает. Для асма типично
что тип данных - это просто призма сквозь которую мы смотрим на сырую memory. К примеру
QWORD можно рассматривать как пару DWORD и также применять к нему либо арифм операцию
класса QWORD либо векторную операцию над двумя WORDS. Или знаковые-беззнаковые типы
как таковые даже не существуют. Это просто семантика операций над регистрами. И сам по себе
cast приобретает другой смысл. Разыменовать кусок памяти для другого типа или слегка преобразовать
raw-data и еще раз разыменовать.

Вобщем я хочу сказать - не парься.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293238
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фундамент любого языка - система типов. Если я не буду понимать фундамент, то никогда не пойму С++. Возможно смогу применять к решению каких-то задач, но это не самое главное. Мне хочется понимать этот язык
...
Рейтинг: 0 / 0
Куда катится C++
    #39293242
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryФундамент любого языка - система типов.
В С++ типы важны только для реализации полиморфизма.
В остальных случаях это просто контроль криворукости программиста.
Скорее штукатурка, а не фундамент
...
Рейтинг: 0 / 0
Куда катится C++
    #39293252
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySashaMercuryФундамент любого языка - система типов.
В С++ типы важны только для реализации полиморфизма.
В остальных случаях это просто контроль криворукости программиста.
Скорее штукатурка, а не фундамент

Основная причина появления данного языка как нового языка, это появление пользовательских типов данных - классов. Серьезные изменения в системе типов языка привели к появлению нового языка. Разве это не так? Что-же по вашему является фундаментом С++ ?
...
Рейтинг: 0 / 0
Куда катится C++
    #39293294
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryОсновная причина появления данного языка как нового языка, это появление пользовательских типов данных - классов.
Нет, это не причина, а следствие.

SashaMercuryЧто-же по вашему является фундаментом С++ ?
* работа на низком уровне (указатели и тп)
* поддержка ООП в синтаксисе
* автоматизация рутинных действий программиста (RAII, шаблоны, лямбды, исключения)
...
Рейтинг: 0 / 0
Куда катится C++
    #39293343
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySashaMercuryОсновная причина появления данного языка как нового языка, это появление пользовательских типов данных - классов.
Нет, это не причина, а следствие.

SashaMercuryЧто-же по вашему является фундаментом С++ ?
* работа на низком уровне (указатели и тп)
* поддержка ООП в синтаксисе
* автоматизация рутинных действий программиста (RAII, шаблоны, лямбды, исключения)

мое скромное мнение здесь так стоит:
Это уже не фундамент, а а-ля "операционный скелет" языка.
Фундамент будет тем же самым, что и у Fortran, COBOL и Basic -
императивная модель вычисления, настаивающая на том, что состояние - существенная часть самого вычисления, и поставленная поверх операции присваивания, l-value и r-value.

Из этого фундамента типизация вытягивается клещами в любом полюбившемся направлении.

как-то так.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293410
kealon(Ruslan)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryФундамент любого языка - система типов. Если я не буду понимать фундамент, то никогда не пойму С++. Возможно смогу применять к решению каких-то задач, но это не самое главное. Мне хочется понимать этот язык
Фундамент любого здания это то, что скрыто от внешнего наблюдателя\потребителя
В данном случае - это свободный и примитивный язык машинных команд. Хочешь просмотреть "фундамент" С++ - изучай ассемблер

типизация - это дверь, которая позволяет входить и выходить не ломая стены

приведение типов - это окна, которые позволяют свету проникать внутрь

предметы обихода - это ООП

крыша - это шаблоны

поймёшь ассемблер - увидишь всё как Нео в Матрице
тебе какую таблетку ??? :-)
...
Рейтинг: 0 / 0
Куда катится C++
    #39293435
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySashaMercuryОсновная причина появления данного языка как нового языка, это появление пользовательских типов данных - классов.
Нет, это не причина, а следствие.


Не очень понял. Рассуждаю так, язык Си развивался, Сообщество программистов требовало перемен(а BS хотел PhD), но эти перемены был настолько серьезны, что было принято решение о создании С++. Язык, в котором на уровне синтаксиса реализована работа с классами, работа с которыми и определило его дальнейшее развитие

Anatoly MoskovskySashaMercuryЧто-же по вашему является фундаментом С++ ?
* работа на низком уровне (указатели и тп)
* поддержка ООП в синтаксисе
* автоматизация рутинных действий программиста (RAII, шаблоны, лямбды, исключения)

Анатолий, но где были бы указатели, если бы система типов языка не подразумевала составные типы, частным случаем которых являются указатели.

Ладно, вы безусловно знаете в разы больше, и я не в коем случае не претендую. Но всё-же мне кажется, эти вопросы очень важны. Меня гонят уже спать(
...
Рейтинг: 0 / 0
Куда катится C++
    #39293447
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryАнатолий, но где были бы указатели, если бы система типов языка не подразумевала составные типы, частным случаем которых являются указатели.
Я не говорю что типы не важны.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293529
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryПочему об этом ничего не сказано ни в стандарте ни в книгах BS? Вообще, нигде ничего не сказано однозначно о том, какая типизация у языка С++. Статическая? Это понятно. Но строгая или слабая мне не понятно.


Потому что эти понятия не очень строго определены.

В С статическая строгая. В С++ то же самое.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293554
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobySashaMercuryпропущено...


Если это правда, то разговоры о строгой и слабой типизации языка есть разговоры о пустом месте

можно иногда википедию глянуть.
Там как откровенный мусорные статьи бывают (когда химики и географы про базы данных рассуждают), так и вполне годный.

При типизацию в русской версии +- годный текст.
Для начала - уж точно
https://ru.wikipedia.org/wiki/Сильная_и_слабая_типизация
Фуфло там написано. Читай хотя бы английский вариант этой же статьи.

Ни разу в жизни не использовал reinterpret_cast, т.к. сишное приведение типа короче при том же результате.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293557
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglboobyпропущено...


можно иногда википедию глянуть.
Там как откровенный мусорные статьи бывают (когда химики и географы про базы данных рассуждают), так и вполне годный.

При типизацию в русской версии +- годный текст.
Для начала - уж точно
https://ru.wikipedia.org/wiki/Сильная_и_слабая_типизация
Фуфло там написано. Читай хотя бы английский вариант этой же статьи.

Ни разу в жизни не использовал reinterpret_cast, т.к. сишное приведение типа короче при том же результате.

Там написаны вполне правильные вещи, кроме того, что в С/С++ слабая типизация.
(Начиная со слов "Например, яркими примерами слабой системы ..." и далее).

P.S. "сишное приведение типа короче при том же результате" -- нет, результат далеко не тот же. Хотя бы reinterpret_cast можно легко искать в тексте программы поиском. Только за это его уже нужно использовать.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293558
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я поясню, почему там написана хрень в отношении С/С++.

Во-первых, потому что их объединяют, а это в принципе неправильно. С++ гораздо более строк с типами.
Во-вторых, потому что рассуждают о reinterpret_cast и им подобных вещах с точки зрения типов данных языка программирования, хотя очевидно, что по сути это -- средства языка, позволяющие оперировать непосредственно байтами памяти, и не имеющие к типам данных почти никакого отношения.

По сути эти средства -- это такой особый встроенный ассемблер, которым если нужно можно напрямую обрабатывать
память любым образом.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293593
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemargl,

По степени внятности английская версия
а) не превосходит русскоязычную (это я тебе как бывший писатель на Visual Basic рассказываю)
б) не противоречит русскоязычной текстуально
в) уступает русскоязычной версии в следующих отношениях:
-- англоязычная версия просто упоминает о том, что лучше было бы не использовать эти плохо определенные понятия, заменяя их по месту сходными с устоявшимся смыслом, а русскоязычная, в отличие от, дает представления о времени и контексте, в которых такие и сякие авторы пытались придать этим словам смысл технических терминов. Что дает объемное представление о степени успешности этих попыток.
-- По вышеуказанной причине (давая намек на историю) русская версия дает, имхо, лучшее представление о причинах повторения таких попыток, источниках, заставляющих авторов высказываться в терминах силы и слабости.
Английская версия, не давая даже намека на генезис, может приводить к ошибочному предположению об обычном слабоумии этих самых авторов (т.е., по ходу, ru еще и с большим уважением к существу вопрос описывает, чем en).

SiemarglНи разу в жизни не использовал reinterpret_cast, т.к. сишное приведение типа короче при том же результате.
Ну, прекрасно это, - здорово.
Я reinterpret_cast тоже в жизни ни разу не использовал.
Правда, по другой причине - я ни разу в жизни ни C, ни C++ не использовал
Факт не использования может быть как-то связан с выявлением силы или слабости типизации в этих языках?
...
Рейтинг: 0 / 0
Куда катится C++
    #39293595
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyПравда, по другой причине - я ни разу в жизни ни C, ни C++ не использовал

Анафема! Гнать тебя отсюда!
...
Рейтинг: 0 / 0
Куда катится C++
    #39293603
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
и вам не хворать, а вообще - приятно, что не перевелись еще на свете лыцари, готовые кого-то куда-то гнать.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293610
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

Если не использовал, то твое суждение о тонкостях, увы, бесполезно.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293611
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot MasterZiv]Siemargl...

Там написаны вполне правильные вещи, кроме того, что в С/С++ слабая типизация.
(Начиная со слов "Например, яркими примерами слабой системы ..." и далее).
...
имхо, существо дела здесь может быть изложено в терминах безопасности по отношению к прострелу собственной ноги.

Языки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией.
Языки оставляющие тебе возможность пораниться, или даже изувечиться - языки со слабой типизацией.
Языки со слабой типизацией претендуют на то, чтобы быть инструментом.
Вот чем они оказываются - боевой секирой, набором кухонных ножей или швейцарским ножем, на все годным, но, может быть, одинаково плохо - требует отдельного изучения в конкретном случае.

Языки с сильной типизацией - картонки для доширака. Пораниться ими почти гарантированно нельзя, но и полезное для организма - маловероятно что получится.

Касательно использовал-не использовал.
Ножа бояться - на кухню не ходить.
Это профессия такая - быть поваром.
Есть повара, для которых есть фугу собственного приготовления - особая профессиональная честь, требующая и специального обучения и специального допуска.

Я бы не переживал за слабую типизацию, предлагаю и тебе на нее дышать ровнее.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293613
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglbooby,

Если не использовал, то твое суждение о тонкостях, увы, бесполезно.
Не надо так расстраиваться. Просто формируй сам свое суждение, по возможности к самому себе относясь с уважением.
Не гонись за силой типизации.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293614
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КМК в сях есть нерешенные вопросы касательно строковых типов. И на фоне них все
остальные (примитивные типы) - вполне себе решены.

Что-то топик у нас не в ту степь пошел. Неужели темы поинтереснее нет?

Что на пятницу поднять?
...
Рейтинг: 0 / 0
Куда катится C++
    #39293617
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyЯзыки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией.
Языки оставляющие тебе возможность пораниться, или даже изувечиться - языки со слабой типизацией.
Языки со слабой типизацией претендуют на то, чтобы быть инструментом.
Вот чем они оказываются - боевой секирой, набором кухонных ножей или швейцарским ножем, на все годным, но, может быть, одинаково плохо - требует отдельного изучения в конкретном случае.
Извините, но нет. Типизация никакого отношения к безопасности не имеет.
Потому что следующий код выстреливает в ногу при полной поддержке строгой типизации.
Код: plaintext
1.
2.
int v[1];
v[100] = 1;



Безопасность зависит от уровня абстракции, а не от строгости типов.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293618
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЧто на пятницу поднять?
Эль неплохо идет ))
...
Рейтинг: 0 / 0
Куда катится C++
    #39293620
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
имеет.
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) то сознание начинает плыть и от этого становится опасно на душе.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293622
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly Moskovsky... Типизация никакого отношения к безопасности не имеет.
Потому что следующий код выстреливает в ногу при полной поддержке строгой типизации.
Код: plaintext
1.
2.
int v[1];
v[100] = 1;



...
Не для назойливости, а для порядка - у этого кода нет шансов прострелить чью-либо ногу на этапе выполнения.
Т.к. при полной поддержке строгой типизации он обязан проваливаться на этапе компиляции.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293628
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot booby]MasterZivпропущено...

имхо, существо дела здесь может быть изложено в терминах безопасности по отношению к прострелу собственной ноги.

Языки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией.
Языки оставляющие тебе возможность пораниться, или даже изувечиться - языки со слабой типизацией.
Языки со слабой типизацией претендуют на то, чтобы быть инструментом.
Вот чем они оказываются - боевой секирой, набором кухонных ножей или швейцарским ножем, на все годным, но, может быть, одинаково плохо - требует отдельного изучения в конкретном случае.

Языки с сильной типизацией - картонки для доширака. Пораниться ими почти гарантированно нельзя, но и полезное для организма - маловероятно что получится.

Касательно использовал-не использовал.
Ножа бояться - на кухню не ходить.
Это профессия такая - быть поваром.
Есть повара, для которых есть фугу собственного приготовления - особая профессиональная честь, требующая и специального обучения и специального допуска.

Я бы не переживал за слабую типизацию, предлагаю и тебе на нее дышать ровнее.
Ты абсолютно не понимаешь основ, в пытаешься оперировать аналогиями. Просто напиши определения, что ты понимаешь как строгую типизацию, а что - как слабую. И тогда будет что обсуждать.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293634
booby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 не используешь.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293640
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglЕсли не использовал, то твое суждение о тонкостях, увы, бесполезно.не обязательно быть пекарем, чтобы понять, вкусный хлеб или нет
kealon(Ruslan)тебе какую таблетку ??? :-)большую! о_О
maytonЧто на пятницу поднять?агасити весь спск
а есть из чего выбрать? Мне интересно c11/14, отличия/преимущества/недостатки/тонкости/подводные_камни этих редакций.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293808
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
booby,

Вот определение от Карделли верное. Теперь попробуй применить его к С++ и понять, почему в русской версии статьи написан бред про С++ со слабой типизацией (а в английской, как ни странно, нет этого утверждения).
...
Рейтинг: 0 / 0
Куда катится C++
    #39293828
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot booby]MasterZivпропущено...

имхо, существо дела здесь может быть изложено в терминах безопасности по отношению к прострелу собственной ноги.

Языки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией.

"сильность" типизации в языке к возможности прострела себе ноги никак не относится.
К тому же "возможность прострела себе ноги" -- крайне неформальное понятие, а уровень типизации по крайней мере
стремиться хоть как-то формализоваться.
...
Рейтинг: 0 / 0
Куда катится C++
    #39293832
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Siemarglbooby,

Вот определение от Карделли верное. Теперь попробуй применить его к С++ и понять, почему в русской версии статьи написан бред про С++ со слабой типизацией (а в английской, как ни странно, нет этого утверждения).

ДА там просто всё, "почему" шито нитками белыми -- функциональщики статью писали.
:-)
...
Рейтинг: 0 / 0
Куда катится C++
    #39294067
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
boobyAnatoly Moskovsky... Типизация никакого отношения к безопасности не имеет.
Потому что следующий код выстреливает в ногу при полной поддержке строгой типизации.
Код: plaintext
1.
2.
int v[1];
v[100] = 1;




...
Не для назойливости, а для порядка - у этого кода нет шансов прострелить чью-либо ногу на этапе выполнения.
Т.к. при полной поддержке строгой типизации он обязан проваливаться на этапе компиляции.
В общем случае такое можно отследить только в рантайме. Что на практике означает падение.
...
Рейтинг: 0 / 0
Куда катится C++
    #39294073
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Надо вводить коэффициент скорострельности по ногам . Расчитывать экспертно. Голосованием.
...
Рейтинг: 0 / 0
Куда катится C++
    #39294137
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyВ общем случае такое можно отследить только в рантайме. Что на практике означает падение.
исключение - выход за границу массива, а не повреждение чужой памяти,
хотя я слышал, что нормальные массивы в с++ не нужны, ибо каждый дятел может написать свою реализацию
...
Рейтинг: 0 / 0
Куда катится C++
    #39294170
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилисключение - выход за границу массива, а не повреждение чужой памяти,

Какая разница? К типизации это не имеет отношения.
...
Рейтинг: 0 / 0
Куда катится C++
    #39294298
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyboobyЯзыки, удерживающие тебя системой типов от прострела ноги настолько сильно, что ты и к ноге не можешь дотянуться - это языки с сильной типизацией.
Языки оставляющие тебе возможность пораниться, или даже изувечиться - языки со слабой типизацией.
Языки со слабой типизацией претендуют на то, чтобы быть инструментом.
Вот чем они оказываются - боевой секирой, набором кухонных ножей или швейцарским ножем, на все годным, но, может быть, одинаково плохо - требует отдельного изучения в конкретном случае.
Извините, но нет. Типизация никакого отношения к безопасности не имеет.
Потому что следующий код выстреливает в ногу при полной поддержке строгой типизации.
Код: plaintext
1.
2.
int v[1];
v[100] = 1;




Вы хитрец C: Что же тогда можно сказать про этот пример?) Увидим мы на потоке вывода приветствие с вами?)

Код: plaintext
1.
2.
3.
4.
5.
	printf("Hello, Alexander\n");
	int k = 0;
	size_t i = 10;
	while (i-- >= k);
	printf("Hello, Anatoly\n");
...
Рейтинг: 0 / 0
Куда катится C++
    #39294352
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Марк, сегодня можно создать пятничную тему или у вас что-то другое заготовлено?
...
Рейтинг: 0 / 0
Куда катится C++
    #39294461
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercury, пожалуйста создавай. Я не претендую на эксклюзив.

Можно две пятничных.

Я сегодня хотел написать о со-программах (co-routines) и об их имплементациях в разных ЯП.
Но еще не собрал материала. Пока - только соображения.
...
Рейтинг: 0 / 0
Куда катится C++
    #39294488
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SashaMercuryЧто же тогда можно сказать про этот пример?)
А зачем вам это знать?
...
Рейтинг: 0 / 0
Куда катится C++
    #39294535
Фотография SashaMercury
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskySashaMercuryЧто же тогда можно сказать про этот пример?)
А зачем вам это знать?

я так и знал, что вы так ответите:D
...
Рейтинг: 0 / 0
Куда катится C++
    #39294709
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поднял тяпничную тему в программинге

Тяпничная со-программа
...
Рейтинг: 0 / 0
Куда катится C++
    #39295182
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О том каким был C и каким стал C++
[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
Куда катится C++
    #39295197
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012О том каким был C и каким стал C++
[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
Куда катится C++
    #39301333
kT_________
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В начале писали о неподъемности Boost, могу сказать что не залезая в исходники этих библиотек можно спокойно продолжать программировать с их использованием, но когда понимаешь, что не понимаешь как работает например Spirit, когда любопытно и медитируешь на Proto, тогда да, понимаешь что в этом языке есть куда расти, и что изучать. Помните, чем больше я изучаю С++ тем меньше я понимаю С++?
Реально не хватает экосистемы, простых и удобных фреймворков, но есть конечно надежда что всё измениться, и тогда-то я перестану кодить на Scala (да, я уже запланировал комбэк), и вернусь обратно, и будет уже совершенно другое кодовство, будет ФП по жесткой схеме, а не только макро-магия прекомпила.
...
Рейтинг: 0 / 0
Куда катится C++
    #39301444
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
народ, чем отличаеются темы
"В какую сторону движется C++?" от "Куда катится C++" ? :) или я чего-то не догнал?
...
Рейтинг: 0 / 0
Куда катится C++
    #39301488
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_black,

В одном оптимисты, в другом — пессимисты,
Которые как известно просто хорошо информированные оптимисты
...
Рейтинг: 0 / 0
Куда катится C++
    #39301494
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил, гы, какая животрепещющая тема ))
...
Рейтинг: 0 / 0
Куда катится C++
    #39302357
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackнарод, чем отличаеются темы
"В какую сторону движется C++?" от "Куда катится C++" ? :) или я чего-то не догнал?
Да. Топики действительно похожи.

Но насколько я понял месседж. MasterZiv считает что развитие С++ стоит на распутье.
Создатели не могут развивать одновременно два направления. ФП и мета-программинг.

Я-бы голосовал за ФП т.к. считаю что у него больше возможностей и он интереснее.
Мета-кодинг исчерпал сам себя. Мы уже больше ничего высосать из него не можем.
Осталось постулировать понятие ЧИСЛА через шаблоны и определить базовые
алгебры. Есть в этом какой-то философский тупик. Получается что С++ ники
каг-бе решают фундаментальные проблемы которые по принципиально отсутствуют
к примеру в Delphi. Или подобно космомольцам сами создают себе трудности
которые решают.

Но каково бизнес-value шаблонов - никто сказать не может. Или не может
провести исследование и доказать что шаблоны очень сильно необходимы
бизнесу.

Скорее всего это просто игры разума.

Как-то так.

По сабжу я не являюсь шаблоно-хейтером. Я просто инженер который искренне
удивляется умению других инженеров создавать себе трудности.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302359
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНо каково бизнес-value шаблонов - никто сказать не может. Или не может
провести исследование и доказать что шаблоны очень сильно необходимы
бизнесу.мне шаблоны реально сокращают рутинный код в разы. Можно теперь сказать, что шаблоны необходимы бизнесу? ;-)
...
Рейтинг: 0 / 0
Куда катится C++
    #39302361
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
egorychmaytonНо каково бизнес-value шаблонов - никто сказать не может. Или не может
провести исследование и доказать что шаблоны очень сильно необходимы
бизнесу.мне шаблоны реально сокращают рутинный код в разы. Можно теперь сказать, что шаблоны необходимы бизнесу? ;-)
Нет, теперь должен провести исследование и доказать Вот то-то же, ждет философский тупик.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302364
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЯ-бы голосовал за ФП т.к. считаю что у него больше возможностей и он интереснее.Вот сижу, думаю. А чего нам в С++ сейчас не хватает чтобы использовать ФП? И прихожу к выводу что уже сейчас все есть. Тут надо не язык развивать, а программистов обучать.
Что такое ФП? Это ж всего-навсего полный запрет обращаться к переменным из внешней области видимости. И все.
Получила функция на вход переменную, обработала, отдала результат другой функции ... и так пока не решим всю задачу.
Как ни странно, но ФП не подразумевает полную имплементацию лямбда-исчисления.
maytonМета-кодинг исчерпал сам себя.Вот если хочешь полноценное лямбда-исчисление получить тогда и мета-программирование понадобится, иначе абстракции сделать не получиться. Впрочем тут я не уверен на все сто. Просто я как зачет сдал по лямбдам, так и забыл их...

maytonНо каково бизнес-value шаблонов - никто сказать не может. Или не может
провести исследование и доказать что шаблоны очень сильно необходимы
бизнесу.Шаблоны могут быть слегка полезны как заменитель вариантных типов. Этакое решение для бедных и только на этапе компиляции. Но и все.

maytonПо сабжу я не являюсь шаблоно-хейтером. Я просто инженер который искренне
удивляется умению других инженеров создавать себе трудности.Поздно. Тебя уже записали :)
...
Рейтинг: 0 / 0
Куда катится C++
    #39302367
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychmaytonНо каково бизнес-value шаблонов - никто сказать не может. Или не может
провести исследование и доказать что шаблоны очень сильно необходимы
бизнесу.мне шаблоны реально сокращают рутинный код в разы. Можно теперь сказать, что шаблоны необходимы бизнесу? ;-)Мне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302377
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами.
Самый простейший пример: std:string и std::wstring код которых без шаблонов пришлось бы продублировать, а так это просто две строки с typedef и один общий шаблон.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302394
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами.

Если клянетесь не воровать! :)

Код: plaintext
1.
2.
3.
4.
5.
6.
private:
	template<typename Types, typename Type>
	bool findTypeByModelId(const Render::ContentId& modelId, Types& types, Type*& typePtr);

	template<typename Type>
	void fillTypeInfo(const Render::ContentId& contentId, Type& type, Gameplay::EmitterDataList& emittersList);


Использование
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
		Gameplay::UnitType* unitTypePtr = nullptr;
		if (findTypeByModelId(contentId, gameProject.getUnitTypesHolder(), unitTypePtr)) {
			assertValidPtr(unitTypePtr);
			fillTypeInfo(contentId, *unitTypePtr, list);
		}

		Gameplay::EnvType* envTypePtr = nullptr;
		if (findTypeByModelId(contentId, gameProject.getEnvTypesHolder(), envTypePtr)) {
			assertValidPtr(envTypePtr);
			fillTypeInfo(contentId, *envTypePtr, list);
		}


Использование тоже можно было бы щаблонизировать, но пока копипаст :)
Появится еще один тип игровых объектов - методы find... и fill... останутся теми же. Но на этапе компиляции будут предъявлены определенные требования к новому типу игровых объектов. Не забалуешь :)

И вообще - очень много где используем. Если есть копипаст - надо подумать как применить шаблоны.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302396
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонамида std::vector же, иначе пришлось бы или каждый раз делать работу с массивом данных, или организовывать свою иерархию, как это делается в классических примерах про виртуальные функции в с++
alex_kЕсли клянетесь не воровать! :)"мы украли твою идею, теперь станем миллионерами" :)
...
Рейтинг: 0 / 0
Куда катится C++
    #39302428
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlmaytonЯ-бы голосовал за ФП т.к. считаю что у него больше возможностей и он интереснее.Вот сижу, думаю. А чего нам в С++ сейчас не хватает чтобы использовать ФП? И прихожу к выводу что уже сейчас все есть. Тут надо не язык развивать, а программистов обучать.
Что такое ФП? Это ж всего-навсего полный запрет обращаться к переменным из внешней области видимости. И все.
Получила функция на вход переменную, обработала, отдала результат другой функции ... и так пока не решим всю задачу.
Как ни странно, но ФП не подразумевает полную имплементацию лямбда-исчисления.
Ну... прежде всего надо формализовать список в понимании ФП. И дать возможность
толкать в него микс из типов. А это требует RTTI. То о чем говорил Илья.

Такое должно работать.
Код: plaintext
1.
list = [ 1, "two", 3.0f, true, [], NIL ];
...
Рейтинг: 0 / 0
Куда катится C++
    #39302444
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlШаблоны могут быть слегка полезны как заменитель вариантных типов. Этакое решение для бедных и только на этапе компиляции. Но и все.
Если рассматривать std::vector, std::map - как набор алгоритмов "над ccылками" (опять гребаный RTTI) то нам шаблонизация
и не очень нужна. Возможно имеет смысл оценить контракты "сравнения" и "хеширования" двух объектов а это
ближе к интерфейсам чем к шаблонам.

Вобщем взять курс на пересмотр необходимости.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302524
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я ещё вспомнил примерчик, модульная надстройка над классами.
Код: plaintext
1.
2.
3.
4.
template<class T> class C : public T
{
//...
};



и куча других прикольных веществ вещей от Александреску
...
Рейтинг: 0 / 0
Куда катится C++
    #39302534
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами.ничего военного. Добавление справочника в главное меню. Создать QAction, добавить его в главное меню, написать для него слот. Шаблоном это делается в одну строку, без шаблона - 7 строк для каждого справочника. Справочников - порядка 50 на приложение.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302675
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton, спасибо :)

мне кажется, что это не мешает друг другу... ну dynamic_cast никак не мешает тому, что есть шаблоны, а шыблоны никак не мешают тому, что есть dynamic_cast..

чтобы убрать шаблоны, у всех классов и, возможно, функций, должен быть один общий суперкласс.. лучшу уж шаблоны :) а то придется от вектора димамокастить в нужный тебе класс..
...
Рейтинг: 0 / 0
Куда катится C++
    #39302697
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТакое должно работать.
Код: plaintext
1.
list = [ 1, "two", 3.0f, true, [], NIL ];


Пожалуйста
Код: plaintext
1.
auto list = std::make_tuple(1, "two", 3.0f, true, std::make_tuple(), nullptr) ;
...
Рейтинг: 0 / 0
Куда катится C++
    #39302700
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackлучшу уж шаблоны
Вы так говорите, как будто шаблоны это что-то плохое, и мы вынуждены их терпеть, потому что без них еще хуже
...
Рейтинг: 0 / 0
Куда катится C++
    #39302722
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alexy_blackmayton, спасибо :)

мне кажется, что это не мешает друг другу... ну dynamic_cast никак не мешает тому, что есть шаблоны, а шыблоны никак не мешают тому, что есть dynamic_cast..

чтобы убрать шаблоны, у всех классов и, возможно, функций, должен быть один общий суперкласс.. лучшу уж шаблоны :) а то придется от вектора димамокастить в нужный тебе класс..
С шаблонами (compile time polymorphism) при несоответствии типов будет ошибка компилятора, а без шаблонов с RTTI (runtime polymorphism) не будет ошибки компилятора. Очевидно же что RTTI лучше, т.к. нет ошибки
Вообще компилятора не должен выдавать ошибки, тогда все программы будут правильными.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302743
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackdynamic_cast делает runtime check. Это работа процессора, которую можно было бы избежать, делая проверки на этапе компиляции.

Работа процессора, к стати, это потраченная электроэнергия. Единственный способ процессору потратить электроэнегрию - выделить тепло. Ну а тепло будет рассеяно во вселенной, увеличивая энтропию.

dynamic_cast увеличивает энтропию!
...
Рейтинг: 0 / 0
Куда катится C++
    #39302760
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_kalexy_blackdynamic_cast делает runtime check. Это работа процессора, которую можно было бы избежать, делая проверки на этапе компиляции.

Работа процессора, к стати, это потраченная электроэнергия. Единственный способ процессору потратить электроэнегрию - выделить тепло. Ну а тепло будет рассеяно во вселенной, увеличивая энтропию.

dynamic_cast увеличивает энтропию!да, я об этом же :)
поэтому считаю шаблоны полезными - без них все будет в рантайме, а это не гуд. я за мир во всем мире и за чистую экологию!
...
Рейтинг: 0 / 0
Куда катится C++
    #39302857
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackя за мир во всем мире и за чистую экологию!Можно и "лучше" сказать.
"Трахтор в поли дыр, дыр, дыр. Мы за мыр! Мы за мыр!" /Павло Тычына/

PS: Ни кто не против STL и template.
Разве кто-то утверждал обратное?
ИМХНО мне этот подход и его реализация не нравится.
Но из этого абсолютно не следует, что их использовать не буду.
Буду - когда посчитаю уместным ...

Такой же подход у любого из форумчан ...
Что обсуждаете то и что друг другу доказываете /и пытаетесь убедить/?

Нет еще "идеального" языка программирования и не только ...

ИМХНО самая большая польза от этого и других форумах может быть лишь в том, чтобы научиться не хамить,
настаивать на своем, уважать мнение других, ...

Остальное ... ... ...
...
Рейтинг: 0 / 0
Куда катится C++
    #39302865
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012, да, мне тоже не нравится.. или я двже не знаю как к этому относится :)

вот например строка. с одной стороны, я бы хотел, чтобы это был набор символов, но это не так. то есть в плюсах std::string - это контейнер char, но символы не влезают в char.. то есть иногда std::string::size не равно кол-ву букв в слове, там хранящимся.
с другой стороны, это как посмотреть: для работы со строками, есть потоки, а это просто контейнер в памяти, поэтому без раницы что у него там что-то не влезает, и хорошо, что я могу управлять где он хранит - больше гибкости.

и срзу куча вопросов для работы со строкам: символ ударения, например, это символ, но люди воспринимают его как часть буквы. то есть слово из пяти букв плюс ударение - это шесть символов для компа, но почти любой скажет, что это пять букв.. естественно одним универсальным подходом тут не обойдешься.

поэтому мне нормально, что это сделано на шаблонах. а для подсчета и операций, можно использовать, например, подход boost.locale - там нужно указать что ты хочешь получить, кол-во символов, слов и т.д.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302881
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlМне жутко хочется посмотреть на этот рутинный код который сокращается шаблонами.
Anatoly MoskovskyСамый простейший пример: std:string и std::wstring код которых без шаблонов пришлось бы продублировать, а так это просто две строки с typedef и один общий шаблон.ммм... может быть. Однако мне как пользователю библиотеки абсолютно до лампочки как именно организован код внутри библиотеки, даже если там будет полноценный копи-паст. До тех пор пока библиотека работает мне не важно сколько там строк внутри.
А когда я пишу собственный класс для строк, я его делаю на основе юникода (с наследованием от ICU) и никакие std::w?string мне не нужны вообще.

alex_kЕсли клянетесь не воровать! :)Не вижу в приведенном примере проверки типов на этапе компиляции. Зато проверку типов в рантайме вижу. Не засчитано.

CEMbда std::vector же, иначе пришлось бы или каждый раз делать работу с массивом данных, или организовывать свою иерархию, как это делается в классических примерах про виртуальные функции в с++Угу. Работа со списками это пожалуй единственное более-менее оправданное использование шаблонов.


egorychничего военного. Добавление справочника в главное меню. Создать QAction, добавить его в главное меню, написать для него слот. Шаблоном это делается в одну строку, без шаблона - 7 строк для каждого справочника. Справочников - порядка 50 на приложение. Уточни, что есть "справочник" в данной задаче?
У меня в качестве справочников всегда используются различные варианты хешей/мапов со строковыми ключами и комментариями. Ни разу не видел нужды их унифицировать на основе шаблонов.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302882
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНу... прежде всего надо формализовать список в понимании ФП. И дать возможность толкать в него микс из типов.Зачем??? У тебя есть хоть одна задача требующая списка переменных разных типов?
...
Рейтинг: 0 / 0
Куда катится C++
    #39302897
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlУ тебя есть хоть одна задача требующая списка переменных разных типов?
Даже если и найдется, то окажется что просто лень было сделать структуру и дать нормальные имена полям ))
...
Рейтинг: 0 / 0
Куда катится C++
    #39302898
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlА когда я пишу собственный класс для строк, я его делаю на основе юникода (с наследованием от ICU) и никакие std::w?string мне не нужны вообще.
Ну а мне нужны были, когда я один и тот же исходник собирал в ansi и wide.
В этом и суть С++, если вам что-то не нужно, то вы его не используете, а если нужно, то оно просто есть, без выламывания себе рук ))
...
Рейтинг: 0 / 0
Куда катится C++
    #39302916
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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: Кто выльет первое ведро помоев, тот удостоится моего персонального приза - " Заслуженный участник форума ".
...
Рейтинг: 0 / 0
Куда катится C++
    #39302942
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012, какие другие подходы вы подразумеваете? lips?

я вобще не об этом. я о том, что в случаи со строками выбор шаблона может быть оправданным. то есть это одна из возможных хороших реализаций. тут как бы упор не на строки, а на шаблоны :)
...
Рейтинг: 0 / 0
Куда катится C++
    #39302958
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ынтырпрайзыч(тм), культура речи на высоте, а по существу что-то скажешь?
...
Рейтинг: 0 / 0
Куда катится C++
    #39302959
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackВладимир2012, какие другие подходы вы подразумеваете? lips?

я вообще не об этом. я о том, что в случаи со строками выбор шаблона может быть оправданным. то есть это одна из возможных хороших реализаций. тут как бы упор не на строки, а на шаблоны :)Не Lisp и др. языки программирования важны сами по себе ...
Для меня они прежде всего важные в аспекте тех идей и подходов, которые предоставили эти языки программирования ...

Вы говорите о каких подходах речь?
Разве здесь может быть какой-то однозначный ответ?

Имеется огромное количество алгоритмов, ... разработанных другими.
Нужно ли их и как и в каком случае лучше использовать сложный вопрос ...
Да и не каждому это нужно ...
Обычно задачи можно разделить на "системные" /результатом которых могут воспользоваться другие/ и пользовательские /создание программ на основе разработанных кем-то ранее libraries/.

Не призываю кого-либо к тому, чтобы "все и вся критиковать и неизвергать" и тем более стремиться создать что-то на противность всем, только чтобы оно было "СВОЕ" и якобы "ЛУЧШЕЕ" ...

PS: Не знаю, что вам и ответить ...
Все зависит от каждого из нас.
Одним "по душе" создание libraries, ... - системщики.
Другим прикладной софт - большинство.

"Все мы люди нужные, необходимые ..."
[spoiler]Снежная королева, 1966 г.
YouTube Video
...
Рейтинг: 0 / 0
Куда катится C++
    #39302971
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskymaytonТакое должно работать.
Код: plaintext
1.
list = [ 1, "two", 3.0f, true, [], NIL ];


Пожалуйста
Код: plaintext
1.
auto list = std::make_tuple(1, "two", 3.0f, true, std::make_tuple(), nullptr) ;


Ну что-ж защитано. Правда мне нужно много чего делать со списками. Брать голову. Хвост.
И много других фундаментальных операций из ФП. Мне также надо чтобы я рационально
использовал память в рамках доступных мне возможностей.

Кстати. А как переводится tuple? Кортеж? Есть-ли какие-либо различия между списком
и кортежем. Для меня это важно т.к. эффортит. Эффортит либо на производительность
либо на возможности.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302972
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася УткинС шаблонами (compile time polymorphism) при несоответствии типов будет ошибка компилятора, а без шаблонов с RTTI (runtime polymorphism) не будет ошибки компилятора. Очевидно же что RTTI лучше, т.к. нет ошибки
Вообще компилятора не должен выдавать ошибки, тогда все программы будут правильными.
Вась. Согласись что статическая проверка сработает только в рамках одного
бинарника. А если мы создаем по настоящему гетерогенное приложение
(много модулей взаимодейсвуют) то нам все равно нужно в рантайме что-то
проверять.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302973
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
White OwlmaytonНу... прежде всего надо формализовать список в понимании ФП. И дать возможность толкать в него микс из типов.Зачем??? У тебя есть хоть одна задача требующая списка переменных разных типов?
Есть. У меня много хотелок. Например я хочу рассматривать любой объект как список
свойств и единообразно сериализировать-десериализировать и выполнять общие
операции ORM-маппинга.

Классическая парадигма требует хардкода. А представление списком - унифицирует.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302974
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyWhite OwlА когда я пишу собственный класс для строк, я его делаю на основе юникода (с наследованием от ICU) и никакие std::w?string мне не нужны вообще.
Ну а мне нужны были, когда я один и тот же исходник собирал в ansi и wide.
В этом и суть С++, если вам что-то не нужно, то вы его не используете, а если нужно, то оно просто есть, без выламывания себе рук ))
КМК кейс с собственным подсчетом количества символов - это "птичье молоко". Я думаю что большинство
из нас проживут длинную и счастливую жизнь с Unicode (utf-16) и никогда не столкнуться с теми ужасами
котрые описывает Анатолий. Пожалуй если-б я наступил на подобный грабель - то имплементил-бы кастом-библиотеку
для поддержки строк с кодовыми точками. Но я-бы не возводил их в ранг правила. Да и нет здесь
правила. Меня устраивает строка в сущесвтующем определении. Определение Анатолия мне не по
душе равно как и не по душе "натяжка" с подсчетом длинны.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302978
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonникогда не столкнуться с теми ужасами
котрые описывает Анатолий
Ну да. Большинство повезло и они никогда не столкнется с WinAPI где как раз и есть два варианта АПИ )))
...
Рейтинг: 0 / 0
Куда катится C++
    #39302981
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсть-ли какие-либо различия между списком
и кортежем
Кортеж - это структура (с о списком полей заданным при компиляции).
А список это коллекция однородных элементов .
Ну а гетерогенную коллекцию надо обосновать конечно. Скорее всего это баг дизайна.
...
Рейтинг: 0 / 0
Куда катится C++
    #39302995
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВася УткинС шаблонами (compile time polymorphism) при несоответствии типов будет ошибка компилятора, а без шаблонов с RTTI (runtime polymorphism) не будет ошибки компилятора. Очевидно же что RTTI лучше, т.к. нет ошибки
Вообще компилятора не должен выдавать ошибки, тогда все программы будут правильными.
Вась. Согласись что статическая проверка сработает только в рамках одного
бинарника. А если мы создаем по настоящему гетерогенное приложение
(много модулей взаимодейсвуют) то нам все равно нужно в рантайме что-то
проверять.
Т.е. раз не можешь создать рай везде, то пусть везде будет ад?
Главное что правильно будет работать мой софт и софт тех у кого хватило разобраться с шаблонами. Ну а остальные будут жаловаться на все технологии, какие им не дай )
...
Рейтинг: 0 / 0
Куда катится C++
    #39303000
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Utf-16 — инвалид если что
...
Рейтинг: 0 / 0
Куда катится C++
    #39303008
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилmayton,

Utf-16 — инвалид если что
Чо?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303015
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЧо?Потому что он создает впечатление что каждый символ занимает 2 байта.
И исходя из этой ложной мысли написаны мегатонны бажного софта.

Намного честнее utf-8. Там изначально понятно что символы переменной длины, и ни у кого ненужных фантазий не возникает.

Не говоря уже об удобстве и обратной совместимости с ASCII.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303017
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИзопропилmayton,

Utf-16 — инвалид если что
Чо?
Ни то ни сё

Вполне безобидные символы могут кодироваться суррогатными парами
...
Рейтинг: 0 / 0
Куда катится C++
    #39303055
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Можно ли спроектировать архитектуру строк, которая бы учитывала "национальные" их особенности и др. моменты? Консорциум юникода - рекомендую. ИМХНО должен быть разработан некий RFC представления строк Вагон . Опять-таки - рекомендую ознакомиться.За основу представления букв скорее всего лучше взять UTF16.Не надо решать давно решённую задачу.
Основная кодировка - UFT8. Всё остальное - старорежимные отрыжки.PS: Здесь не говорилось об native формате представления строк ... /struct, .../А какого лешего вы тогда UTF16 упомянули???
...
Рейтинг: 0 / 0
Куда катится C++
    #39303083
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovА какого лешего вы тогда UTF16 упомянули???В предложенном формате строки используются meta данные и char в некоторой кодировке.
В качестве основной кодировки предложил использовать UTF16 так как символ любой кодировки можно представить в виде
двух байтового значения и тем самым упростить манипуляции ними /не зря Microsoft выбрала именно UTF16/.
Но безусловно meta данные могут указывать на то, что далее идут chars некоторой кодировки /например UTF8/.

Какие из RFC определяют правила представления "универсального" формата строк?

Вообще то все RFC определяют некоторый "стандарт", используемый при решении некоторой задачи.
Универсальных RFC нет.
Поэтому чем чаще разработчики будут что-либо "изобретать" тем чаще будут появляться новые RFC.

PS: Предложенный формат формат представления строк в основном был направлен к тому, чтобы обратить
внимание, что даже в таком вопросе как представление строк возможно спроектировать множество форматов их представления.
И опять таки не с целью отвергнуть то, что кем то уже сделано, а в случае если для проекта требуется именно exclusive формат.

В связи с этим не думаю, что имеет смысл обсуждать предложенный мной формат представления строк.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303085
alexy_black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012/не зря Microsoft выбрала именно UTF16/. cp1251, не?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303089
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexy_blackcp1251, не?Наш любимый TCHAR
Что такое TCHAR, WCHAR, LPSTR, LPWSTR,LPCTSTR (итд) https://habrahabr.ru/post/164193/
...
Рейтинг: 0 / 0
Куда катится C++
    #39303095
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012В качестве основной кодировки предложил использовать UTF16 так как символ любой кодировки можно представить в виде двух байтового значенияЯ, по вашему, просто так дал ссылку на юникод?
сделайте плакат на стенуВ кодовой точке - 21 бит
Символ юникода даже в базовой плоскости может состоять из нескольких кодовых точек
не зря Microsoft выбрала именно UTF16Не хочется комментировать, но, раз уж вы так настаиваете - зря. Очень зря.Какие из RFC определяют правила представления "универсального" формата строк?А вы индекс-то почитайте ...Вообще то все RFC определяют некоторый "стандарт"Вообще-то - нет. Не все. Даже не близко ко "все".В связи с этим не думаю, что имеет смысл обсуждать предложенный мной формат представления строк.Это не формат, а бессвязный поток мыслей.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303097
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovНе хочется комментировать, но, раз уж вы так настаиваете - зря. Очень зряНе настаиваю ...
Но если вы приведете аргументы в преимущество использования UTF8 вместо UTF16, то буду рад.
При разработке для WWW использую только UTF8.
Для десктоп - TCHAR.

Basil A. SidorovЯ, по вашему, просто так дал ссылку на юникод?Кодовая точка это что?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303100
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Для десктоп - TCHAR"Без комментариев".Кодовая точка это что?Примитив юникода.

P.S. "И эти люди запрещают мне ковыряться в носу"?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303101
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov"Без комментариев".Ну хорошо по другому. При использовании C++ для разработки под Windows.
Что не так?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303102
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovP.S. "И эти люди запрещают мне ковыряться в носу"?Какой то вы "дерганный" сильно ...
Больше вам отвечать не буду.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303105
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Ну хорошо по другому. При использовании C++ для разработки под Windows.
Что не так?То, что на виндах свет клином не сошёлся.
И то, что даже виндам приходится взаимодействовать с внешним миром.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303112
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012В качестве основной кодировки предложил использовать UTF16 так как символ любой кодировки можно представить в виде
двух байтового значения и тем самым упростить манипуляции ними
unicode определяет диапазон кодовых точек от 0 hex до 0x10FFFF


двух байт никак не хватит, в UTF-16 для представления того, что не уместилось в два байта используются суррогатные пары
...
Рейтинг: 0 / 0
Куда катится C++
    #39303120
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилВладимир2012В качестве основной кодировки предложил использовать UTF16 так как символ любой кодировки можно представить в виде
двух байтового значения и тем самым упростить манипуляции ними
unicode определяет диапазон кодовых точек от 0 hex до 0x10FFFF


двух байт никак не хватит, в UTF-16 для представления того, что не уместилось в два байта используются суррогатные пары
Стоит ли закладываться на суррогатные пары, делая софт для 5 основных языков?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303126
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SiemarglСтоит ли закладываться на суррогатные пары, делая софт для 5 основных языков? FAQ - Normalization .
...
Рейтинг: 0 / 0
Куда катится C++
    #39303135
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Русский , надеюсь, в "пять основных входит"?
Что характерно, всё в пределах базовой плоскости (16-битные кодовые точки), но всё равно есть символы, которые могут быть представлены несколькими (двумя) кодовыми точками.

P.S. Или будем настаивать, что грамотные люди и так отличают ёжиков от ежиков?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303136
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov,

суррогатные пары никакого отношения к нормализации не имеют
...
Рейтинг: 0 / 0
Куда катится C++
    #39303138
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилсуррогатные пары никакого отношения к нормализации не имеютНе имеют.
Зато нормализация наглядно демонстрирует, что нельзя взять представление с фиксированным числом байт на кодовую точку (UCS-2, USC-4, UTF-16 и UTF-32) и посчитать количество символов как разницу двух индексов.
Причём этого нельзя сделать не только для языков с идеографической письменностью, но и для европейских языков. Даже для тех, для которых существуют однобайтовые кодировки.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303140
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересное обсуждение
Ограниченность набора символов Unicode для идентификаторов https://rsdn.org/forum/cpp/6539519.all
...
Рейтинг: 0 / 0
Куда катится C++
    #39303146
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Интересное обсуждениеTrigraphs and Universal Character Names http://www.open-std.org/jtc1/sc22/wg14/www/docs/n770.htm
...
Рейтинг: 0 / 0
Куда катится C++
    #39303150
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир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
...
Рейтинг: 0 / 0
Куда катится C++
    #39303169
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так?

Добавить в C++ синтаксис, обеспечивающий многоязычную возможность задания имени идентификатора.
Что то типа.
int VpTime{ ru:VpВремя, es:VpTiempo};

Ну а далее в программе используем один из трех вариантов напсания имени переменной.
Например:
VpВремя += 5;
VpTiempo -= 1;
...
Рейтинг: 0 / 0
Куда катится C++
    #39303170
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Ну а далее в программе используем один из трех вариантов напсания имени переменной.Sorry.
Ну а далее в программе используем один из трех вариантов написания имени переменной.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303174
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Куда катится C++
    #39303176
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЗаймитесь лучше литературным программированием .Благодарю /неплохо, неплохо, .../

В долгу не хочу оставаться ...
Неявные интерфейсы С++ шаблонов http://grizlyk1.narod.ru/cpp_new/msg02/template_interfaces_280616.pdf
...
Рейтинг: 0 / 0
Куда катится C++
    #39303180
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЗаймитесь лучше литературным программированием .Гм.
Интересные идеи habrahabr относит к "ненормальному программированию" ...
/а может быть оно и к лучшему ... Плохо когда дурак поймет "шиворот навыворот", а затем еще накуралесит./
...
Рейтинг: 0 / 0
Куда катится C++
    #39303181
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Неявные интерфейсы С++ шаблонов http://grizlyk1.narod.ru/cpp_new/msg02/template_interfaces_280616.pdf Человек, создающий IPv4r2 не умеет адекватно мыслить.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303185
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovЧеловек, создающий IPv4r2 не умеет адекватно мыслитьЕще не читал ...
Но все же - "В чем не адекватность?".
...
Рейтинг: 0 / 0
Куда катится C++
    #39303189
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте себе представим что существует аналогия между char[] массивом символов и строкой string.
При этом нам, как инженерам хотелось-бы иметь простые формулы перехода от одной системы к другой.

Ну ... примерно так-же как в математике переходят от чисел к комплесным числам и матрицам.

В случае с Utf-16 у нас 1 символ полностью соотвествует знакоместу в string. Формулы индексаторов
(взятия символа по индексу в строке) также просты. Проще говоря нам удобно в utf-16 реализовывать
позиционирование. Нам также удобно (без преобразований) осуществлять маппинг типа. Для \0 символа
предусмотреть еще одно расширение char[] и дело сделано.

И если привлекать в спор рассуждения об энергоёмкости или энергопотреблении (как было
сказано выше) то я-бы предположил что алгоритмы, работающие со сжатым (utf-8) предсталением
строк энергоёмки и накладны.

Проводя аналогию с архивацией - их имплеметация индексатора или взятия под-строки
(::substring) требуют использования декодеров т.н префиксного кода.

Один печально известный финский парень со сложным характером недавно сетовал
дескыть что около 5 лет изменений в ядро ОС Linux было потрачено на поддержки
современных технологий энергоэффективности. И эти issues имели под собой основание.
Так почему-же сейчас мы тут безосновательно предлагаем энерго-накладную технологию
обработки строк даже не задумываясь о последствиях?

По моему скромному мнению отраслевые изменения которые произошли после внедрений
Microsoft.Net, Oracle/Java должны поставить точку в этом споре. Двухбайтная кодировка
имплементирована и живет. Диалектические споры на тему того сколько нужно битов
- 16 или 21 - давайте оставим для евангелистов. Следующая веха в развитии разрядной
сетки для символа должна возникнуть с освоением космоса.

А исходя из общих принципов и архитектур построения стандартов с учетом производительности
- нам нужен не трех-байтных символ а сразу четырех-байтный. С padding-ом.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303190
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы меня прям в тупик ставите ...
Двойные стэки реализованы лет десять как, существуют разные варианты туннелирования IPv4 <-> IPv6.
И всё это умеет сетевое оборудование от тирванского до бытового.
Но тут появляется рыцарь без страха и упрёка, который готов не только сражаться с ветряными мельницами, но ещё и сам их возводит.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303191
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВ случае с Utf-16 у нас 1 символ полностью соотвествует знакоместу в stringЧто ж вы все такие упёрто-упоротые ...
Не соответствует. Или крестик снимите юникод выбросьте или работайте с символами, которые состоят из последовательности кодовых точек в соответствии со стандартами, а не по собственным измышлениям.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303193
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonя-бы предположил что алгоритмы, работающие со сжатым (utf-8) предсталением
строк энергоёмки и накладны.
На основании чего предположение? )))
maytonТак почему-же сейчас мы тут безосновательно предлагаем энерго-накладную технологию
обработки строк даже не задумываясь о последствиях?
Ну да, ну да, безосновательно - это мы любим )))
...
Рейтинг: 0 / 0
Куда катится C++
    #39303199
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovmaytonВ случае с Utf-16 у нас 1 символ полностью соотвествует знакоместу в stringЧто ж вы все такие упёрто-упоротые ...
Не соответствует. Или крестик снимите юникод выбросьте или работайте с символами, которые состоят из последовательности кодовых точек в соответствии со стандартами, а не по собственным измышлениям.
Василий. Ну хорошо. Я готов допустить что кодовые точки и знания о них очень важны.

Опиши пожалуйста конкретный кейс (желательно для языков стран ЕС) когда нам не хватает API Utf-16.

Нет правда. Я готов поверить.

P.S. Назови! Нет я жду! (с) Аркадий Варламович Велюров...
...
Рейтинг: 0 / 0
Куда катится C++
    #39303202
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА исходя из общих принципов и архитектур построения стандартов с учетом производительности
- нам нужен не трех-байтных символ а сразу четырех-байтный. С padding-ом.
UTF-32

SiemarglСтоит ли закладываться на суррогатные пары, делая софт для 5 основных языков?
Unicode Block “Transport And Map Symbols”
как минимум преобразования UTF-8 <> UTF-16 должны быть корректными
...
Рейтинг: 0 / 0
Куда катится C++
    #39303207
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОпиши пожалуйста конкретный кейс (желательно для языков стран ЕС) когда нам не хватает API Utf-16.Нету такого API.
Есть (уже странное) желание работать с юникодными строками, как с массивом символов. Не выходит. И никогда не получится, поскольку базовое понятие юникода - составные символы.
Таким образом, я не могу просто "ткнуться по индексу" и начать "что-то делать" - сначала надо должен проверить "а не попал ли я куда-то в середину составного символа".
Будут символы составными или нет зависит не от кодировки , а от нормализации.
А если при любой кодировке надо работать с символами переменной ширины, то UFT-16/UTF-32 не получают никаких таких особых преимуществ перед UTF-8.
Наоборот, UTF-8 становится предпочтительной кодировкой, т.к. она обеспечивает обратную совместимость с US-ASCII и возможность работы с юникодом при минимальных правках реализаций, сделанных для US-ASCII.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303209
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov, еще раз прошу. Опиши кейс использования который мы используем неправильно.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303212
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonBasil A. Sidorov, еще раз прошу. Опиши кейс использования который мы используем неправильно.Ёжики зелёные!
В кодировке UTF-16 это будет 28 байт в нормализации C/KC и 32 байта - в нормализациях D/KD. В UTF-8 - 26 и 30 байт, соответсвенно.

Таким образом , в русском алфавите кириллического блока юникода есть четыре символа переменной ширины - "ёЁйЙ".

Вы всё ещё хотите обращаться с юникодными символами, как с массивом знакомест?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303215
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
int _tmain(int argc, wchar_t * argv[])
{
	const wchar_t s1[] = L"ё";
	const wchar_t s2[] = L"\x0435\x0308";


	int result = ::CompareStringEx(
		LOCALE_NAME_INVARIANT,
		0, 
		s1, -1,
		s2, -1,
		nullptr,
		nullptr,
		0);

	return result;
}



таки равны строки
...
Рейтинг: 0 / 0
Куда катится C++
    #39303222
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилтаки равны строкиЯсен перец, что равны.
Корректная работа с юникодными строками может быть обеспечена при любой кодировке. В ICU их (кодировок) штук двадцать, наверное.

Речь, вообще-то, о несколько другом.
Апологеты Win API утверждают, что UTF-16 - филосовский камень, а это совсем не так.

P.S. Вот когда (если) вы реализуете CompareStringEx() для разных кодировок - тогда и можно будет предметно побеседовать о преимуществах кодировок с фиксированным размером кодовых точек.
Правда, подозреваю, что тогда и предмет обсуждения исчезнет за полной эфемерностью.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303225
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
#include "windows.h"
#include "stdio.h"

// --------------------------------------------------------
//
int wmain(
 int      argc, 
 wchar_t  *argv[]
) {

 const wchar_t s1[] = L"ё";
 const wchar_t s2[] = L"\x0435\x0308";
 
 int result = ::CompareStringEx(
  LOCALE_NAME_INVARIANT,
  0, 
  s1,
  -1,
  s2,
  -1,
  nullptr,
  nullptr,
  0
 );
 
 return result;

}                                                          // int _tmain(
...
Рейтинг: 0 / 0
Куда катится C++
    #39303227
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovПравда, подозреваю, что тогда и предмет обсуждения исчезнет за полной эфемерностью.
предмет и так нет.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303229
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012В отладчике установите останов на строке return result; и посмотрите native представление строки s1
\x0451 - что не так?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303230
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропил\x0451 - что не так?
Basil A. Sidorov утверждает, что
Basil A. Sidorov Таким образом , в русском алфавите кириллического блока юникода есть четыре символа переменной ширины - "ёЁйЙ".Если его правильно понял, то "ё" например представлена не двух байтным кодом.
А каким?

Еще раз http://graphemica.com/ё
...
Рейтинг: 0 / 0
Куда катится C++
    #39303232
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

многострадальная ё независимо от кодировки (UTF-8,UTF-16 и т д) может быть представлена как одной кодовой точкой (U+0451), так и двумя - (U+0435) (U+0308)
...
Рейтинг: 0 / 0
Куда катится C++
    #39303233
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. Sidorov Таким образом , в русском алфавите кириллического блока юникода есть четыре символа переменной ширины - "ёЁйЙ".
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
#include "windows.h"
#include "stdio.h"

int wmain(
 int      argc, 
 wchar_t  *argv[]
) {

 const wchar_t s1[] = L"ёЁйЙ";
 
 return 0;

}

В отладчике посмотрите на коды символов ...
...
Рейтинг: 0 / 0
Куда катится C++
    #39303243
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При сравнении через 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.
import java.text.Collator;
import java.util.Locale;

import static java.lang.System.out;

public class Main3 {

    public static void main(String[] args){

        Collator en_USCollator = Collator.getInstance(new Locale("en","US"));
        Collator ru_RUCollator = Collator.getInstance(new Locale("ru","RU"));

        String s1 = "ё";
        String s2 = "ё";
        out.printf("( s1 == s2 ) = %s \n" , (s1.equals(s2)));

        out.printf("en_USCollator.equals(s1,s2) = %s \n", en_USCollator.equals(s1,s2));

        out.printf("ru_RUCollator.equals(s1,s2) = %s \n", ru_RUCollator.equals(s1,s2));

    }

}



Код: java
1.
2.
3.
( s1 == s2 ) = false 
en_USCollator.equals(s1,s2) = false 
ru_RUCollator.equals(s1,s2) = true 
...
Рейтинг: 0 / 0
Куда катится C++
    #39303244
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилмногострадальная ё независимо от кодировки (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.
Для определения порядка байтов используется метка порядка байтов (англ. Byte order mark).
В начале текста записывается код U+FEFF. При считывании, если вместо U+FEFF считалось U+FFFE, значит 
порядок байтов обратный, поскольку символа с кодом и U+FFFE в Юникоде нет. Так как в кодировке UTF-8 не 
используются значения 0xFE и 0xFF, можно использовать метку порядка байтов как признак, позволяющий 
различать UTF-16 и UTF-8
...
Рейтинг: 0 / 0
Куда катится C++
    #39303245
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Вообщем FAR и notepad++ не умеют работать с UTF-16.
композитные символы не имеет никакого отношения к кодировке
...
Рейтинг: 0 / 0
Куда катится C++
    #39303249
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Если его правильно понялНеправильно.
Один и тот же символ может быть представлен как одним кодом, так и несколькими. От кодировки это не зависит.
Поэтому, вне зависимости от кодировки, символы юникода должны рассматриваться, как имеющими переменную длину.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303250
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообщем то 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.
Кодовое пространство

Хотя формы записи UTF-8 и UTF-32 позволяют кодировать до 231 (2 147 483 648) кодовых позиций, было 
принято решение использовать лишь 1 112 064 для совместимости с UTF-16. Впрочем, даже и этого на текущий 
момент более чем достаточно — в версии 6.0 используется чуть менее 110 000 кодовых позиций (109 242 
графических и 273 прочих символа).

Кодовое пространство разбито на 17 плоскостей (англ. planes) по 216 (65 536) символов. Нулевая плоскость 
(plane 0) называется базовой (basic) и содержит символы наиболее употребительных письменностей. 
Остальные плоскости — дополнительные (supplementary). Первая плоскость (plane 1) используется в основном 
для исторических письменностей, вторая (plane 2) — для редко используемых иероглифов китайского письма 
(ККЯ), третья (plane 3) зарезервирована для архаичных китайских иероглифов[31]. Плоскости 15 и 16 
выделены для частного употребления[7].
...
Рейтинг: 0 / 0
Куда катится C++
    #39303252
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилкомпозитные символы не имеет никакого отношения к кодировкеНу в таком случае имеем право работать с строкой в UTF-16 как с массивом.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303253
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПри сравнении через Collator с указанием особенностей страны + языка все чики-пикиТолько это не из-за мифических пузырьков UTF-16.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303255
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Ну в таком случае имеем право работать с строкой в UTF-16 как с массивом.Имеете. Только лажать будете.
А если не будете - код получится ничуть не проще и ничуть не эффективнее, чем при работе со строками как с массивом байт в кодировке UTF-8.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303256
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
кодовая точка U+1F682 STEAM LOCOMOTIVE 🚂


в разных кодировках:
Код: plaintext
1.
2.
UTF-8 	0xF0 0x9F 0x9A 0x82
UTF-16	0xD83D 0xDE82
UTF-32	0x0001F682 


в случае (U+0451) и (U+0435) (U+0308) - представление Ё различно при использовании ОДНОЙ кодировки
Код: plaintext
1.
UTF-8              0xD1 0x91        и     0xD0 0xB5 0xCC 0x88
UTF-16,UTF-32       0x0451          и     0x0435 0x0308
...
Рейтинг: 0 / 0
Куда катится C++
    #39303258
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovmaytonПри сравнении через Collator с указанием особенностей страны + языка все чики-пикиТолько это не из-за мифических пузырьков UTF-16.
Вася. Как часто в своей практике ты встречал букву Ё закодированную т.н. кодовыми точками или двумя
символами UTF-16 ?

Только по чесноку.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303261
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Изопропилкомпозитные символы не имеет никакого отношения к кодировкеНу в таком случае имеем право работать с строкой в UTF-16 как с массивом.
как паровозик в UTF-8 перекодируете?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303262
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТолько по чесноку.В "старых" маках использовалась максимальная декомпозиция. Как в новых - не знаю.
У меня нет и не было ни старого, ни нового. Только что это меняет?
Хотя ... Есть встречный вопрос - вам часто приходилось "врукопашную" строки сравнивать?
А почему тогда вы так уверены, что UTF-16 круче, чем крутые яйца?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303264
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonзакодированную т.н. кодовыми точками или двумя символами UTF-16 ?И, кстати, опять эта типичная ошибка.
Кодовые точки они тоже от кодировки не зависят - это просто числа.
И "широкое" представление "cyrylic letter yo" это два кода и один символ даже в UTF-16.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303267
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovИмеете. Только лажать будете.
А если не будете - код получится ничуть не проще и ничуть не эффективнее, чем при работе со строками как с массивом байт в кодировке UTF-8.Давно присматривался к http://site.icu-project.org/, но пока не использовал.
1C 8.x использует.
Далее сказанное к 1С отношения не имеет.

Все используют library ICU
[spoiler]
YouTube Video
...
Рейтинг: 0 / 0
Куда катится C++
    #39303269
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хер с ней, ё

как сравнивать немецкий эсцет и ss ,

прочие европейские лигатуры ?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303272
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как-как ...
Код: java
1.
s1.equals(s2)

UTF-16, фиксированная ширина на знакоместо, все дела.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303274
Фотография Anatoly Moskovsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКак часто в своей практике ты встречал букву Ё закодированную т.н. кодовыми точками или двумя
символами UTF-16 ?
Ё не знаю.
А вот всякие зачеркивания, подчеркивания, ударения - регулярно встречаются.
Они меняют физическую длину строки, не меняя число символов.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303279
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Basil A. SidorovmaytonТолько по чесноку.В "старых" маках использовалась максимальная декомпозиция. Как в новых - не знаю.
У меня нет и не было ни старого, ни нового. Только что это меняет?
Хотя ... Есть встречный вопрос - вам часто приходилось "врукопашную" строки сравнивать?
А почему тогда вы так уверены, что UTF-16 круче, чем крутые яйца?
Да как-то не могу оценить процент полезной инфы из этих знаний. Вот здесь over
несколько страниц идет обсуждение на тему того что букву ё надо сравнивать не по words
а более сложным образом но у меня есть сомнения в практичности выбранного подхода.

Возможно есть какой-то класс приложений сродни морфологических или филологических
где важен генезис букв в словах и там наверное есть смысл поддержать кодовые точки.

Но я за последние лет 15 не встречал чтобы кто-то кодировал букву Ё двумя символами.

Если такие приложения действительно мне попадуться - я пожалуй буду использовать
коллейшенс и прочие CompareStringEx а пока позвольте мне остаться при своем
мнении об использовании Utf-16.

Вобщем давайте на этом заканчивать и вернёмся к С++.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303280
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonмнении об использовании Utf-16.

не надо мягкое и тёплое путать, CODEPOINT и ENCODING

несчастная буква Ё - может иметь разное представление в кодовых точках (одна и две кодовых точки)

кодовая точка может по разному представляться в UTF-8,UTF-16,UTF-32 и т д
...
Рейтинг: 0 / 0
Куда катится C++
    #39303281
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как относитесь к возможности расширения C++ для возможности написания имен в национальных кодировках?
Вообщем то C++ уже с ограничениями позволяет так кодировать имена ...

Sorry.
Повторю предложенное ранее.

Добавить в C++ синтаксис, обеспечивающий многоязычную возможность задания имени идентификатора.
Что то типа.
int VpTime{ ru:VpВремя, es:VpTiempo};

Ну а далее в программе используем один из трех вариантов написания имени переменной.
Например:
VpВремя += 5;
VpTiempo -= 1;

PS: Вот к примеру 1С русские названия управляющих операторов не использую, а название переменных ... зачастую использую русские названия /мне удобно/.
В C++ однозначно часто бы наряду с английскими названиями использовал бы русские.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303285
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот официальное мнение http://icu-project.org/docs/papers/forms_of_unicode/

В этой статье затронуты все те вопросы, которые мы обсуждали ...
...
Рейтинг: 0 / 0
Куда катится C++
    #39303287
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

отношение между символами и глифами не обсуждалось, а тема интересная

не до него. с примитивным энкодингом не справились...

а "официальное мнение" находится здесь - http://www.unicode.org/
...
Рейтинг: 0 / 0
Куда катится C++
    #39303290
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилотношение между символами и глифами не обсуждалось, а тема интереснаяВ этой статье не только этот вопрос затронут ...
Например:
Код: 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.
Storage vs. performance
Both UTF-8 and UTF-16 are substantially more compact than UTF-32, when averaging over the world's text in 
computers. UTF-8 is currently more compact than UTF-16 on average, although it is not particularly suited for 
East-Asian text because it occupies about 3 bytes of storage per code point. UTF-8 will probably end up as about
the same as UTF-16 over time, and may end up being less compact on average as computers continue to make 
inroads into East and South Asia. Both UTF-8 and UTF-16 offer substantial advantages over UTF-32 in terms of 
storage requirements.

Code-point boundaries, iteration, and indexing are very fast with UTF-32. Code-point boundaries, accessing code 
points at a given offset, and iteration involve a few extra machine instructions for UTF-16; UTF-8 is a bit more 
cumbersome. Indexing is slow for both of them, but in practice indexing by different code units is done very 
rarely, except when communicating with specifications that use UTF-32 code units, such as XSL.

This point about indexing is true unless an API for strings allows access only by code point offsets. This is a very 
inefficient design: strings should always allow indexing with code unit offsets. Moreover, because code points do 
not, in general, correspond to end-user expectations for characters, it is often better to use grapheme (user 
character) boundaries instead, and to store text in strings rather than as single code points. See The Unicode 
Standard, Version 3.0 for more information.

Conversion between different UTFs is very fast. Unlike converting to and from legacy encodings like Latin-2, 
conversion between UTFs doesn't require table lookups.

Overall performance may also be affected by other factors. For example, if the code units match the machine 
word size, access can be faster; but if they use up more memory, more page faults and cache faults may occur, 
slowing down performance.



Кстати в Table 1 Вот что сказано об UTF-16.
Код: plaintext
1.
2.
All of the most common characters in use for all modern writing systems are already represented with 2 bytes. 
Characters in surrogate space take 4 bytes, but as a proportion of all world text they will always be very rare.


Так что в целом с суждением
maytonЕсли такие приложения действительно мне попадуться - я пожалуй буду использовать
коллейшенс и прочие CompareStringEx а пока позвольте мне остаться при своем
мнении об использовании Utf-16.согласен.

Вообщем планирую задействовать при разработке и ICU.
...
Рейтинг: 0 / 0
Куда катится C++
    #39303293
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,

желаю удачно походить по граблям ))

чему равен sizeof(wchar_t) ?
...
Рейтинг: 0 / 0
Куда катится C++
    #39303338
Фотография Usman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivКуда катится C++В сторону Javы

P.S.
ымхо-хо-хо
...
Рейтинг: 0 / 0
Куда катится C++
    #39303535
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UsmanMasterZivКуда катится C++В сторону Javы

P.S.
ымхо-хо-хо
Откуда такие выводы?

Судя по количеству постов, С++ в два раза медленнее катится, чем движется
...
Рейтинг: 0 / 0
Куда катится C++
    #39303607
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не плохо если бы модератор предыдущие страницы 3 удалил ...
Разговор ни о чем ... /и с моей стороны также/.

Достаточно придерживаться того о чем говорит Microsoft и все будет Ok!
Generic-Text Mappings in Tchar.h https://msdn.microsoft.com/en-US/library/c426s321.aspx
...
Рейтинг: 0 / 0
Куда катится C++
    #39303680
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012Достаточно придерживаться того о чем говорит Microsoft и все будет Ok!
где у Microsoft написано, что нужно игнорировать понятие codepoint и суррогатные пары в UTF-16?
...
Рейтинг: 0 / 0
Куда катится C++
    #39304069
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилВладимир2012Достаточно придерживаться того о чем говорит Microsoft и все будет Ok!
где у Microsoft написано, что нужно игнорировать понятие codepoint и суррогатные пары в UTF-16?
Подытоживая все вышесказанное. Я предлагаю считать тему Utf-8/16/32 и кодовых точек важной
и актуальной но требующей отдельного обсуждения и отдельного топика.


Считаю также что тема Utf-8/16/32 и кодовых точек не имеет отношения к С++ и предлагаю считать ее оффтопом.

Предлагаю сейчас и впредь не поддерживать это направление обсуждения в данном топике.

Коллеги? Илья? WhiteOwl?

Жду ваших комментариев.
...
Рейтинг: 0 / 0
Куда катится C++
    #39304133
Пётр Седов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изопропилчему равен 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, и т.д.).
...
Рейтинг: 0 / 0
Куда катится C++
    #39304657
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonWhite Owlпропущено...
Зачем??? У тебя есть хоть одна задача требующая списка переменных разных типов?
Есть. У меня много хотелок. Например я хочу рассматривать любой объект как список
свойств и единообразно сериализировать-десериализировать и выполнять общие
операции ORM-маппинга.

Классическая парадигма требует хардкода. А представление списком - унифицирует.Извини, но это очень недодуманная хотелка. Даже если ты сделаешь список с разнотипными переменными, тебе по прежнему будет нужно этот список как-то обработать. Нет смысла просто делать список "чтоб был". Список нужен для чего-то. А как только мы добавляем в список некую структурность которая должна объяснить читателю списка что за элементы в этом списке лежат - мы сразу получаем либо список типизированных структур, либо список кортежей с идентификатором элемента в каждом коретеже.
...
Рейтинг: 0 / 0
Куда катится C++
    #39304700
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕсть. У меня много хотелок. Например я хочу рассматривать любой объект как список
свойств и ...Вот вы и подошли к парадигме обобщенного программирования.
Рад за вас.
...
Рейтинг: 0 / 0
Куда катится C++
    #39304727
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНапример я хочу рассматривать любой объект как список свойствГорячо, ...

Не слушайте "поучающих".
На форумах процентов на 99 очень устойчиво наблюдается "знания" о которых говорится ниже>

При коллективизации /тридцатые года/ повсеместно из сел направляли на курсы трактористов молодых парней.
Курсы длились 2- месяца и на них затрагивались темы и устройства трактора и ...
И вот на экзаменах один молодой новоиспеченный тракторист успешно, ответивший на все вопросы спрашивает экзаменующего -
" Все понимаю. Вот только одного не понимаю. Куда же в нем кобылу впрягать? "
...
Рейтинг: 0 / 0
Куда катится C++
    #39304791
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonНапример я хочу рассматривать любой объект как список свойств
мне немного непонятно, куда пошло русло дискуссии... а сейчас объект это что?

С++ даёт возможность делать динамически наполняемые свойствами объекты. Под свойствами можно опять же понимать всё что угодно, сделанное на шаблоне. Удобно.
...
Рейтинг: 0 / 0
Куда катится C++
    #39304823
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbС++ даёт возможность делать динамически наполняемые свойствами объекты.Про это и речь.
Объекты, которым можно динамически добавить не только свойства, но и поля ... /у меня именно так и реализован код для работы с объектами/.

PS:
"Мы рождены, чтоб сказку сделать былью,
Преодолеть пространство и простор,
Нам Сталин дал стальные руки-крылья,
А вместо сердца — пламенный мотор.

Всё выше, выше и выше
Стремим мы полёт наших птиц,
И в каждом пропеллере дышит
Спокойствие наших границ.
"
...
Рейтинг: 0 / 0
Куда катится C++
    #39304831
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012не только свойства, но и полячто подразумевается под свойствами и под полями?

вот блин, всегда думал что:
"нам разум дал стальные руки-крылья" о_о
...
Рейтинг: 0 / 0
Куда катится C++
    #39304839
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbmaytonНапример я хочу рассматривать любой объект как список свойств
мне немного непонятно, куда пошло русло дискуссии... а сейчас объект это что?

С++ даёт возможность делать динамически наполняемые свойствами объекты. Под свойствами можно опять же понимать всё что угодно, сделанное на шаблоне. Удобно.
Шаблон - это фаза компилляции. Его (шаблона) нет в рантайме. А я хочу в рантайме получать сведения
об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят
в основной цикл компилляции.
...
Рейтинг: 0 / 0
Куда катится C++
    #39304849
Siemargl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonCEMbпропущено...

мне немного непонятно, куда пошло русло дискуссии... а сейчас объект это что?

С++ даёт возможность делать динамически наполняемые свойствами объекты. Под свойствами можно опять же понимать всё что угодно, сделанное на шаблоне. Удобно.
Шаблон - это фаза компилляции. Его (шаблона) нет в рантайме. А я хочу в рантайме получать сведения
об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят
в основной цикл компилляции.Это дорого и по памяти и по быстродействию и по оптимизации. Для этого есть другие языки.
...
Рейтинг: 0 / 0
Куда катится C++
    #39304852
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbчто подразумевается под свойствами и под полями?
ИМХУ бардак в терминологии в других ЯП. Добавили методы чтения/записи свойств, добавили синтаксический сахар чтобы методы выглядели как свойства, назвали это свойствами, а свойства переобозвали полями. Например в C#
В С++ это вроде не наблюдается.
...
Рейтинг: 0 / 0
Куда катится C++
    #39304864
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonШаблон - это фаза компилляции. Его (шаблона) нет в рантайме. А я хочу в рантайме получать сведения
об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят
в основной цикл компилляцииСУБД до некоторой степени как раз и поддерживают некоторый вид динамических объектов.
Можно добавить некоторые поля в объект, но при этом от программиста не нужно будет перекомпилировать исходные коды скриптов.
И все работает!

Проще говоря все СУБД поддерживают некоторую архитектуру объектов и некоторый вид языков программирования для доступа к ним.
NOSQL базы аналогично также поддерживают некоторую архитектуру объектов ... ... ...

PS: Кто хочет обеспечить в своих программах возможность динамически /без перекомпиляции/ работать с объектами должны:
- разработать и реализовать требуемую архитектуру объектов;
- обеспечить средства /libreries, языки программирования, .../ для работы с объектами.

Другой вид программ - "традиционный", при котором на всякий "чих" требуется перекомпиляция и пересборка программы.

Скорее всего имеются и другие пути понимания что такое объект и как с ним работать ..
...
Рейтинг: 0 / 0
Куда катится C++
    #39304873
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИМХУ бардак в терминологии в других ЯП. Добавили методы чтения/записи свойств, добавили синтаксический сахар чтобы методы выглядели как свойства, назвали это свойствами, а свойства переобозвали полями.Угу, угу ...
К примеру в СУБД таблица по существу является контейнером для некоторого вида объекта, свойства которых раскрываются в ряде подчиненных таблиц ...

PS: Не знаю можно ли вообще дать некоторое "универсальное" определение что такое объект и что означает свойство объекта.
...
Рейтинг: 0 / 0
Куда катится C++
    #39304906
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TИМХУ бардак в терминологии в других ЯП. Добавили методы чтения/записи свойств, добавили синтаксический сахар чтобы методы выглядели как свойства, назвали это свойствами, а свойства переобозвали полями. Например в C#
В С++ это вроде не наблюдается.По другому говоря ...
"Мы говорим поле - подразумеваем свойство. Мы говорим свойство - подразумеваем поле".

PS: Ведь часто свойство в свою очередь может иметь подсвойства ... /иерархия, эволюция, .../
...
Рейтинг: 0 / 0
Куда катится C++
    #39304925
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА я хочу в рантайме получать сведения
об объектах, даже тех которые были получены из других библиотек, и не были написаны мной и не входят
в основной цикл компилляции.
Если ты хочешь в рантайме - интерфейсы.
Если ты хочешь из других библиотек - интерфейсы для работы с другими библиотеками. Не надо на меня так смотреть, в общем случае непонятно, что такое "из других библиотек", или уточняй, что конкретно ты хочешь, или используй интерфейс к сферическому вакуумному классу.
опять же, с утра нашёл, но ещё не смотрел std::type_info

Dima TВ С++ это вроде не наблюдается.
Очень даже наблюдается: __declspec(property(...)) и мешает жить при отладке. Set/Get нормальная сама по себе штука, если без фанатизма. Я понимаю, когда у нас "сложный" параметр, который за собой тянет зависимости или который имеет границы по значениям или порождает события. Короче, интерактивный. Тогда да, мы делаем его private и наружу выставляем методы работы с ним (телевизор + ПДУ). Но когда в классе куча безобидных переменных, а тут же ещё это всё умножается в 10+ раз строчками кода гетеров-путеров получается путаница-гетаница неудобно ни читать, ни отлаживать, прыгая в отладке туда-сюда. А потом приходит MS и добавляет property, и все почему забивают на принятые в проекте нотации, потому что это же не члены класса! - и жизнь отладчика ухудшается в 2 раза. Я бы ещё им это простил, если бы их инструменты (VS) были удобными (как Idea), но когда это под дебагом абсолютно невозмодно прочитать... грр.

Поэтому, если я всё правильно понял, свойства от полей никак информационно не отличаются :) Поэтому, всё решение у всех нас сводится к тому, что класс имеет список компонентов (давайте так назовём, чтоб не путаться) в виде контейнера шаблонов или контейнера указателей, неважно, и мы можем на ходу добавлять в объект класса эти компоненты. И существует некий универсальный инструмент для работы с этими компонентами: получить тип, значение и всё, что мы добавили в описание класса-компонента. И это решение будет довольно простое, гибкое и удобное.
...
Рейтинг: 0 / 0
Куда катится C++
    #39304966
Фотография Изопропил
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbПоэтому, если я всё правильно понял, свойства от полей никак информационно не отличаются :)
получи адрес свойства или передай его по ссылке
...
Рейтинг: 0 / 0
Куда катится C++
    #39304995
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ИзопропилCEMbПоэтому, если я всё правильно понял, свойства от полей никак информационно не отличаются :)
получи адрес свойства или передай его по ссылкепочему никто не читает, что я пишу?
CEMbсвойства от полей никак информационно не отличаются
...
Рейтинг: 0 / 0
Куда катится C++
    #39305043
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Раз уж мы затронули тему динамических классов, ну или как это назвать, хочу немного подумать в слух.

Модератор: Редактировано

Когда я начал работать с динамикой, я обнаружил несколько прикольных вещей, которые снаружи не особенно заметны, пока не начинаешь это делать сам.
В обычных классах архитектура продумывается заранее, возможно в процессе как-то меняется, но в любом случае мы ограничены этой архитектурой в процессе исполнения. С динамикой всё по-другому. Ну, т.е. понятно, что классы можно наполнять по ходу дела, да, но это общий случай. В частности же возможность динамически менять объекты класса часто приводит к интересным решениям, которые при простой разработке архитектуры в голову не приходят. Это как расширение сознания за счёт того, что динамическая структура класса на порядок "разнообразнее", чем статическая.
А потом я понял, что ООП в обычном смысле мне теперь и не нужен. Не нужна иерархия классов. Достаточно создавать абстрактные базовые объекты и потом наполнять их нужными свойствами, что делает их более конкретными и близкими к неким логическим классам объектов.
Далее мы можем в зависимости от наличия или отсутствия определённых свойств применять на объектах различные действия. Т.е. мы можем сваливать в кучу все наши объекты(привет, mayton), потом перебирая все объекты, смотрим, если у объекта есть, например, свойство "форма", то мы можем, например, "измерить размер" объекта. Если формы у объекта нет, то и измерять нечего. Логично? Наглядно? Жизненно? :)
Дальше ещё лучше: свойства можно добавлять в свойства, что усложняет систему, но даёт больше гибкости и ещё сильнее расширяет сознание. Можно, конечно, без фанатизма, сделать отдельный класс для иерархии объектов, отдельных для свойств, так, наверно, даже лучше и нагляднее, но одно другого не отменяет. А ещё...

Модератор: Редактировано
...
Рейтинг: 0 / 0
Куда катится C++
    #39305058
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbДальше ещё лучше: свойства можно добавлять в свойства, что усложняет систему, но даёт больше гибкости и ещё сильнее расширяет сознание.и где то в середине всего этого у нас иногда выскакивает логическая ошибка в программе и мы тратим жизнь в отладке, а могли бы заранее продумать необходимый дизайн классов приложения
...
Рейтинг: 0 / 0
Куда катится C++
    #39305072
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychи где то в середине всего этого у нас иногда выскакивает логическая ошибка в программе и мы тратим жизнь в отладке, а могли бы заранее продумать необходимый дизайн классов приложения
логические ошибки не зависят в данном случае от динамической модели, а целиком от архитектуры приложения. Более того, работая с такой моделью, я стал разумнее организовывать архитектуру приложения. Не уверен, что это связано с объектом обсуждения, но мне так кажется пока что. Все логические ошибки, даже довольно сложные, находятся очень быстро. Потому что сама структура приложения вообще и объекты в частности - упрощаются. Приложение легко делится на слои, не надо тащить за собой иерархии классов и копаться в них. Объекты, мало того, что достаточны по свойствам, так в них ещё очень просто эти свойства искать (с ужасом вспоминаю отладку какого-нибудь проекта на работе, где приходится, чтобы посмотреть значение свойства, рыться в списке в стопият переменных...).
...
Рейтинг: 0 / 0
Куда катится C++
    #39305074
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbСемён, спасибо... о_о о_о о_о ...Ну и прав Семен на 100%.
Зачем кому-то, что-то доказывать.
Те кто любит настоять на своем, те по большей части просто - троли.
Кто работает - у тех полно насущных задач ... /им тролить нет нужды, да и некогда/.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305096
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorychCEMbДальше ещё лучше: свойства можно добавлять в свойства, что усложняет систему, но даёт больше гибкости и ещё сильнее расширяет сознание.и где то в середине всего этого у нас иногда выскакивает логическая ошибка в программе и мы тратим жизнь в отладке, а могли бы заранее продумать необходимый дизайн классов приложения
или хотябы получить ошибку компиляции :)
...
Рейтинг: 0 / 0
Куда катится C++
    #39305126
Фотография CEMb
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex_kили хотябы получить ошибку компиляции :)
это уже имеет, как бы, отношение к языку и компилятору, а не своей реализации иерархии данных. Другими словами: никто ведь не заставляет, это ж не стандарт пока ещё
...
Рейтинг: 0 / 0
Куда катится C++
    #39305213
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMb,

А разве речь не про рантайм? Иначе непонятен вообще разговор про авторДостаточно создавать абстрактные базовые объекты и потом наполнять их нужными свойствами, что делает их более конкретными и близкими к неким логическим классам объектов.

Делай наследование, добавляй нужные поля - все в парадигме ООП.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305303
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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.
#include <iostream>
#include <boost/any.hpp>
#include <string>
#include <unordered_map>
#include <typeindex>
#include <functional>

struct printable_any : boost::any 
{    
    printable_any() {}
    
    template <typename T> printable_any(const T& t) : boost::any(t),
        printer_([](std::ostream& os, const boost::any& a) { os << boost::any_cast<const T&>(a); })
    { }
    std::function<void(std::ostream&, const boost::any&)> printer_;
};
std::ostream& operator<<(std::ostream& os, printable_any const& sa) { if(!sa.empty()) sa.printer_(os, sa); return os; }

std::unordered_map<std::type_index, std::string> type_names = { 
    {std::type_index(typeid(int)), "int" }, 
    {std::type_index(typeid(float)), "float" }, 
    {std::type_index(typeid(std::string)), "std::string" } 
};


int main()
{
    std::unordered_map<std::string, printable_any> properties;
    properties["length"] = 10;
    properties["raiting"] = 20.1F;
    properties["name"] = std::string("bottle");

    for(auto &i : properties)
        std::cout << i.first << " = " << i.second << "\t type = " << type_names[i.second.type()] << "\n";
}



Код: plaintext
1.
2.
3.
name = bottle        	 type = std::string
raiting = 20.1        	 type = float
length = 10        	 type = int
...
Рейтинг: 0 / 0
Куда катится C++
    #39305375
siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
alex_kCEMb,

А разве речь не про рантайм? Иначе непонятен вообще разговор про авторДостаточно создавать абстрактные базовые объекты и потом наполнять их нужными свойствами, что делает их более конкретными и близкими к неким логическим классам объектов.

Делай наследование, добавляй нужные поля - все в парадигме ООП.Речь про рантайм, да.
Немного ещё поясню разницу: чтобы добавить одно поле - нужен ещё один класс с этим полем. А если мне нужен на весь проект один объект этого класса? В динамике я просто добавлю объекту свойство.
А если это поле многое меняет? К примеру, класс "человек". Человек человеку друг. Но тут мне понадобился негр. Нужен флаг bool m_bNegr(да это неправильная реализация, на надо прикапываться к тому, как надо было это сделать, я знаю). Я завожу ещё один дочерний класс CNegr : public CHuman, и у него завожу флаг m_bNegr. ОК. Но человек человеку друг, а негра никто не любит. Мне приходится делать все методы родительского класса от человек_устраивается_на_работу() до человек_заходит_в_бар(). Ладно, я перепишу их, так и быть. Всё, негра никто не любит, ура, классическое ООП победило. Но тут вдруг выясняется, что среди собак тоже бывают негры. И собаки не в одной иерархии с людьми. Я иду и пишу отдельный класс с функционалом для негра, ОК. Из зала с одной стороны подсказывают "интерфейссс...", с другой "шаблон...". Да, это всё по науке.
Но если это будет негритянский интерфейс: мне надо будет описать интерфейс, возможно абстрактный (если наука слишком строгая), в итоге на негра-человека будет 2 класса, и на собаку-негра - 2 класса. Итого 3. Интерфейс и две имплементации, даже если код про работу с неграми одинаковый, всё равно надо тянуть свойства родительских классов, через наследование.
Если это будет шаблон: это будет как раз что-то типа template <class T> class N : public T, тоже самое в чуть более изящной форме и один раз. Опять же, если код одинаковый. Если код разный - мне придётся делать частичную спецификацию, и чем больше, тем сомнительнее будет выгода использовать шаблоны.
Нормальные люди просто напишут ещё один класс для негра с виртуальными методами, от которого отнаследуются. Это тот же интерфейс, но без выекрутасов.
А я просто добавлю свойство в объект. Конечно, мне надо будет где-то написать код для этого свойства, и у меня он весь будет в куче, особенно, если он разный для разных предков. Зато я прям в одном месте могу описать дефолтное поведение (чёрный чайник поставили на полку в магазине, а в системе нет чайников) и частные случаи. Код, относящийся к одному свойству будет в одном месте. В классах - код относящийся к одному классу будет в одном месте. Да? А нет, он будет размазан по иерархии.
Даже нормальные люди, которые написали один класс для негра, будут вынуждены как-то добывать информацию, от кого они родили негра, в случае когда код разный для разных сущностей. Я же эту информацию получу из объекта в рантайме напрямую (все ещё привет, mayton).
Я не говорю, что классическое ООП это плохо. Это хорошо, как минимум вся эта волшебная динамика построена на классическом ООП. Просто мне динамика нравится. Особенно, знаете, когда это торкает... Вот вспомните какой-нибудь свой проект, и там какой-нибудь классический пример класса. Вот этот класс у вас в проекте, у него какие-то поля ("какие тополя!", да, не отвлекайтесь), всё это используется как-то красиво в коде, стройно, чётко и работает. Так вот. Прелесть динамики не только в том, что вы в объект на ходу можете добавлять поля. А ещё большая, как мне показалось, прелесть в том, что вы можете эти поля убирать
Ещё раз вспомните свой класс и примените на нём это знание. Чувствуете, как расширяются горизонты?
...
Рейтинг: 0 / 0
Куда катится C++
    #39305389
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Читаю, читаю и вспоминается попугай Кеша с его бессмертным: "А если дождь во время усушки?".
Может, просто взять за правило работать в тех рамках, которые есть?
...
Рейтинг: 0 / 0
Куда катится C++
    #39305396
siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovМожет, просто взять за правило работать в тех рамках, которые есть?Всё-таки, почему никто не читает, что я пишу? :(
...
Рейтинг: 0 / 0
Куда катится C++
    #39305411
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
... но, если хотите, могу пояснить более развернуто.
Есть, например, Object REXX - там и свойства и "ранний выход" (reply) и никаких иерархий (сеть объектов, основанная на обмене сообщениями). Функциональщины, вроде нет, но, наверное, можно "прикрутить" что-нибудь "этакое".
В принципе, если сам язык вас устраивает - всё хорошо. "Но есть ньюанс".

Это интерпретируемый (точнее - токенизируемый) язык. Всё, что нужно - вычисляется в динамике. С соответствующими накладными расходами.
И лично я - плохо понимаю как (хоть сколько-нибудь эффективно) упихнуть любую такую динамичность в машинный код. Как навернуть "мощный рантайм" - понимаю, как сохранить эффективность - нет.

Проблема, с моей кочки зрения, лежит вне языков программирования. Проблема в том, что современный бизнес - одна большая "группа А". И информационные технологии - на лидирующих позициях в этой группе, и вместо "производства средств потребления" делаются попытки создать всё более изощрённые "производства средств производства".
...
Рейтинг: 0 / 0
Куда катится C++
    #39305423
siebentearbeit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ок, оставим динамику в стороне.Basil A. SidorovПроблема, с моей кочки зрения, лежит вне языков программирования. Проблема в том, что современный бизнес - одна большая "группа А". И информационные технологии - на лидирующих позициях в этой группе, и вместо "производства средств потребления" делаются попытки создать всё более изощрённые "производства средств производства".На чём основано мнение? И что подразумевается под "производством средств потребления"/"производством средств производства"?
...
Рейтинг: 0 / 0
Куда катится C++
    #39305482
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anatoly MoskovskyЗапахло марксизмом )))Все это детские шалости ...
Маркс "смущенно стоит в сторонке" перед глубиной ниже приведенного суждения:

"Нельзя игнорировать критерии утопического субъективизма в связи с ультрарадикальными взглядами на реально существующее :)
Ну, это и понятно, поскольку ведь каждый индивидуум метафизически самосоставляет абстракцию"
...
Рейтинг: 0 / 0
Куда катится C++
    #39305488
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася Уткин, вы написали много кода. Спасибо вам.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305495
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CEMbЕсли ты хочешь в рантайме - интерфейсы.
Если ты хочешь из других библиотек - интерфейсы для работы с другими библиотеками. Не надо на меня так смотреть, в общем случае непонятно, что такое "из других библиотек", или уточняй, что конкретно ты хочешь, или используй интерфейс к сферическому вакуумному классу.
опять же, с утра нашёл, но ещё не смотрел std::type_info

Вы... как и в всякий сишник живете в мире классического (стационарного ООП). В мире который был фундаментально
обоснован лет 30 назад теоретиками системного анализа. Этот мир рос и развивался в условиях главенствующей
на тот момент программно-аппаратной архитектуры. А именно - ограниченного объема ОП. Двух-фазного цикла
разработки. Компилляция-линковка. И жестокой экономии всего-всего. Разрядной сетки указателей. RTTI, и мета-информации
о среде исполнения. Фактически рантайм для С++ как таковой не существует. Он есть в ОС, файловой системе и
состоянии сетевого окружения. В такой парадигме жизненный цикл ПО очень прост. Баг или дефект НЕВОЗМОЖНО
исправить без шатдауна процессе и подмены его на обновленный образ процесса который вы предварительно собрали.
Всякие технологии плагинов или динамических библиотек - не тривиальны. Не дружат с ООП. И вообще никоим образом
не соотносятся с С++ разработкой. Грубо говоря С++ ничего вам не дает для контроля за состоянием рантайма.
А крупные бизнес приложения сегодня требуют развитого и модульного рантайма. В частности - способности
на ходу подменять логику различных модулей. Я не сильно разбирался как дело с этим обстоит в С++ и Unix OS
но по моим скромным знаниям только несколько ОС обеспечивают такие возможности. Но это.. уровень API OS.
Поблагодарим за это архитекторов. Но не господина Бьярне. Он здесь - непричем. Он - ничего не сделал для
развития именно этого направления. Видимо для него рантайм не важен. Мне это почему-то напоминает фундаментальную
средневековую геометрию+арифметику которая никогда не изучала движение (дифференцирование) а рассматривала
мир в состоянии покоя. Архитектура. И ее формы. Любое движение - было ересью. Мдя...

Но вернемся к нашим дебатам. Я прошу вас убрать сарказм. И понять тренд о котором я говорю. Я ни в коем
случае не являюсь хейтером С++. Я просто инженер-практик. И я указываю (и буду указывать) на некоторые
недостатки. Мои же коллеги к сожалению видят в этом выпад и бросаются защищать свои идеомы. Но я при
этом нахожусь в их же лагере. Я-же и защищаю. Вот такой вот дуализм.

Давайте как-то в этом ключе.

И я вас прошу убрать из нашего треда акценты на мою персону. Мне право не очень приятно когда мне подмигивают,
передают приветы и пишут "смищные щютки". Я с вами лично не знаком и такая фамильярность на меня производит
неприятное впечатление.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305496
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonВася Уткин, вы написали много кода. Спасибо вам.
Считаю рабочий пример лучше тысячи слов болтовни

Или вот: http://coliru.stacked-crooked.com/a/02b9da4741b9d88a
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
int main()
{
    std::unordered_map<std::string, printable_any> properties;

    properties["length"] = 10;
    properties["raiting"] = 20.1F;
    properties["name"] = std::string("bottle");    
        
    int length  = properties["length"];
    float raiting  = properties["raiting"];
    std::string name  = properties["name"];

    std::cout << std::endl << length << ", " << raiting << ", " << name << std::endl;
}
...
Рейтинг: 0 / 0
Куда катится C++
    #39305505
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Далее. По поводу следующего сорца.
Код: plaintext
1.
2.
3.
4.
 std::unordered_map<std::string, printable_any> properties;
    properties["length"] = 10;
    properties["raiting"] = 20.1F;
    properties["name"] = std::string("bottle");



Насколько я понял здесь карта (мапа/хешмапа/табличка/хештабличка/отображение выберете синоним) предлагается
в качестве репозитария для хранения свойств объекта.

В качестве бонуса автор также предлагает полиморфизм типов. Тоесть можно запихнуть в качестве value любое
значение их трех известных этой системе типов. Хотя для меня, избалованного платформерами такой небольшой
бонус не особо интересен. Тем более что он ограничен перечислением.

В целом данный пример хорош. Он очень напоминает реализацию JavaScript-объекта. Правда здесь я-бы проверил
на сохранения порядка полей. Это важно для ORM и для общих сведений об объекте. Никто не может просто так
по приколу поменять ранг (или порядок следования) полей.

В целом в данном примере С++ как конструктор мета-языка не особо хорош. Мне непонятно зачем так много
букв и зачем автор переопределял операторы вывода. Я это вообще не заказывал.

Здесь также нет сведений о типе. Я-бы все таки хотел иметь возможность проверять instanceOf(..)
Возможно автор предлагает реализовать DuckTyping но это надо как-то отметить.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305507
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА крупные бизнес приложения сегодня требуют развитого и модульного рантайма. В частности - способности
на ходу подменять логику различных модулей.
1. Какие приложения это требуют?
2. Нафига?
3. Какие бизнес приложения это позволяют?
4. Что случится с бизнес-процессом, когда половина выполнялась на одной логике и не окончив БП ее "подменили"?

Вроде документум такое позволяет, хранится столько версий приложения, сколько открытых БП... но.... вместо сложностей диплоя, появляются сложности администрирования, что бы тот бардак, который в пром. базе накапливается корректно удалить. Ну и сложность саппорта, когда пользователь говорит "не работает", а в системе каждый БП выполняется на свой версии и пойди пойми, что у него происходит.

Вся требуемая модульность замечательно решается за счет модульности ))) Переключили систему/пользователей на резервный сервер. Обновили, перезапустили модуль. Переключили систему обратно. Обновили, перезапустили резервный сервер.

При чем тут C++ мне совершенно не понятно.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305511
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonДалее. По поводу следующего сорца.
Код: plaintext
1.
2.
3.
4.
 std::unordered_map<std::string, printable_any> properties;
    properties["length"] = 10;
    properties["raiting"] = 20.1F;
    properties["name"] = std::string("bottle");



Насколько я понял здесь карта (мапа/хешмапа/табличка/хештабличка/отображение выберете синоним) предлагается
в качестве репозитария для хранения свойств объекта.

В качестве бонуса автор также предлагает полиморфизм типов. Тоесть можно запихнуть в качестве value любое
значение их трех известных этой системе типов. Хотя для меня, избалованного платформерами такой небольшой
бонус не особо интересен. Тем более что он ограничен перечислением.

В целом данный пример хорош. Он очень напоминает реализацию JavaScript-объекта. Правда здесь я-бы проверил
на сохранения порядка полей. Это важно для ORM и для общих сведений об объекте. Никто не может просто так
по приколу поменять ранг (или порядок следования) полей.

В целом в данном примере С++ как конструктор мета-языка не особо хорош. Мне непонятно зачем так много
букв и зачем автор переопределял операторы вывода. Я это вообще не заказывал.

Здесь также нет сведений о типе. Я-бы все таки хотел иметь возможность проверять instanceOf(..)
Возможно автор предлагает реализовать DuckTyping но это надо как-то отметить.
Это не бонус, а ран-тайм типизация в С++ о которой вы ничего не знали. Очень высокомерно и смешно, что вы чего-то тут заказывали
Открою ещё секрет std::list - он сохроняет порядок.
Привел пример получения индекса типа, но оказывается сведений о типе нет. Наверное не всем дано разобраться в таком большом коде )
...
Рейтинг: 0 / 0
Куда катится C++
    #39305514
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Какие приложения это требуют?
2. Нафига?
3. Какие бизнес приложения это позволяют?
4. Что случится с бизнес-процессом, когда половина выполнялась на одной логике и не окончив БП ее "подменили"?

Leonid Kudryavtsev, я не могу ответить вам на все вопросы не нарушив при этом соглашение о неразглашении.
Скажу только что у заказчика поддержка OSGI описана в главном SR.

Что случается если логика одного модуля подменяется? Ну если вы знаете про шаблон прокси-объекта
то дальше сами можете догадаться. Ничего не происходит. Просто начинает работать новая версия.

Смысл и семантика того что происходит с данными разумеется ложится на сектор devops.
Они решают когда ставить обновление и как.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305518
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ я вас прошу убрать из нашего треда акценты на мою персону.Да вообще вот не пойму, почему многие часто любое суждение с которым они не согласны акцентируют чуть ли не с "личной обидой".
И после якобы "обиды" в отместку /вообщем не знаю что у них на уме/ производят всякие "нападки" на оппонента?

PS: Сказанное мной мне действительно не понятно, так как у меня ни когда не возникало желание кого-то духовно "ущемить" ...
...
Рейтинг: 0 / 0
Куда катится C++
    #39305519
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leonid KudryavtsevВся требуемая модульность замечательно решается за счет модульности ))) Переключили систему/пользователей на резервный сервер. Обновили, перезапустили модуль. Переключили систему обратно. Обновили, перезапустили резервный сервер.

При чем тут C++ мне совершенно не понятно.
Я не утверждаю что в С++ это невозможно. Я просто говорю что существуют ряд нерешаемых
годами вопросов которые комитет мог-бы поставить на обсуждение. Уверен что реквесты существуют.
Разумеется мой пример с OSGI был просто приведен как первый попавшийся с потолка. Есть много способов дружить
микро-сервисы между собой.

Но попробуйте ПОСТАВИТЬ задачу в терминах С++.

Попробуйте.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305521
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася УткинЭто не бонус, а ран-тайм типизация в С++ о которой вы ничего не знали. Очень высокомерно и смешно, что вы чего-то тут заказывали
Открою ещё секрет std::list - он сохроняет порядок.
Привел пример получения индекса типа, но оказывается сведений о типе нет. Наверное не всем дано разобраться в таком большом коде )
Ну классно.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305522
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012maytonИ я вас прошу убрать из нашего треда акценты на мою персону.Да вообще вот не пойму, почему многие часто любое суждение с которым они не согласны акцентируют чуть ли не с "личной обидой".
И после якобы "обиды" в отместку /вообщем не знаю что у них на уме/ производят всякие "нападки" на оппонента?

PS: Сказанное мной мне действительно не понятно, так как у меня ни когда не возникало желание кого-то духовно "ущемить" ...
Вообще-то вы ошиблись.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305524
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВообще-то вы ошиблисьSorry.
Неудачно привел ваш ответ CEMb.
Пост не был вызван тем, что я что-то "принял на свой счет".
...
Рейтинг: 0 / 0
Куда катится C++
    #39305525
Вася Уткин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир2012PS: Сказанное мной мне действительно не понятно...
Это самая сильная фраза, которую вы сказали!
...
Рейтинг: 0 / 0
Куда катится C++
    #39305528
Владимир2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вася УткинЭто самая сильная фраза, которую вы сказали!Угу ...
Такое бывает с любым кто не придерживается правила - "Где просто - там ангелов со сто. Где мудрено - там ни одного".

PS: Буду исправляться.
...
Рейтинг: 0 / 0
Куда катится C++
    #39305550
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир2012,
Модератор: Да вы тут совсем офигели ... Топик закрываю, ибо нефиг.
...
Рейтинг: 0 / 0
285 сообщений из 285, показаны все 12 страниц
Форумы / C++ [игнор отключен] [закрыт для гостей] / Куда катится C++
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]