-
- Тупой и простой вариант: Tyмблep(75 знак., 10.04.2022 15:09)
- Поменять имена - не вариант, ибо в этом замысел. С пространством
имен тоже не все гладко - надо подключать хедеры внутрь других
хедеров (где описываются классы). При этом using namespace желательно не применять, иначе оно просочится через весь ворох
хедеров с потенциальными проблемами. - Argon(10.04.2022 16:00)
- Не совсем понял про замысел Tyмблep(583 знак., 11.04.2022 08:48)
- Еще раз уточню про замысел: оно не случайно совпало, именно так и
задумано. Есть несколько сущностей, которые имеют одинаковый набор
структур с одинаковым назначением, но разным набором данных. Вот
эти структуры и имеют одинаковые имена, ибо логично и некоторая
защита от ошибок в будущем. Argon(1546 знак., 11.04.2022 10:59 - 11:04)
- А общий КОД у проектев есть, или только общие объявления типов? Если есть, то проблема - как ЛИНКЕР сможет различить структуры из разных модулей? По идее, после СИ-компилятора - никак. Это будут одинаковые символы, нет? Cкpипaч(50 знак., 11.04.2022 19:47)
- Вместо пространства имен должно быть название сущности, на мой
взгляд. Тогда можно извратиться и обработать одним кодом данные
всех сущностей. - VLLV(11.04.2022 19:18)
- Сущности имеют разные имена, но одинаковые имена своих структур
данных. Особенность в том, что мне надо протащить эти структуры
данных через хедеры головного проекта, ибо описания классов
находятся в хедерах (головного проекта). Если не применять
пространства имен, то будут конфликты из-за попыток переопределения
структур с одним и тем же именем. Argon(181 знак., 11.04.2022 19:27)
- Первая фраза очевидна, а потом я теряюсь. Может быть мое решение
было бы с помощью виртуальной структуры, которая включает все
дивайсы, как это обычно делается для распределения памяти EEPROM, и
позволяет обратиться по смещению поля, но это plain C. Зато меньше
абстракций. - VLLV(11.04.2022 19:39)
- А что за виртуальная структура, которая включает все девайсы? У меня это не очень вируальная структура, а вполне реальный класс. Однако он описывается в заголовочном файле (хедере), из-за чего и весь сыр-бор, ибо в него надо воткнуть все классы девайсов, включающие файлы с пресловутыми одноименными структурами. - Argon(11.04.2022 20:14)
- off... слушаю на ночь видосики от АРХЭ, пальцы строчат "головоногий проект", приходится исправлять. - Argon(11.04.2022 19:29)
- Первая фраза очевидна, а потом я теряюсь. Может быть мое решение
было бы с помощью виртуальной структуры, которая включает все
дивайсы, как это обычно делается для распределения памяти EEPROM, и
позволяет обратиться по смещению поля, но это plain C. Зато меньше
абстракций. - VLLV(11.04.2022 19:39)
- Сущности имеют разные имена, но одинаковые имена своих структур
данных. Особенность в том, что мне надо протащить эти структуры
данных через хедеры головного проекта, ибо описания классов
находятся в хедерах (головного проекта). Если не применять
пространства имен, то будут конфликты из-за попыток переопределения
структур с одним и тем же именем. Argon(181 знак., 11.04.2022 19:27)
- Так вот сходу трудно въехать в архитектуру чужого проекта Tyмблep(631 знак., 11.04.2022 18:26)
- Хех, сишники используют X-Macro и не тужат. SciFi(1 знак., 11.04.2022 11:02, ссылка)
- Вот только не надо тута холиваров C vs C++ ) Кесарю - кесарево. - Argon(11.04.2022 11:07)
- Кто сказал холивар? Просто показываю, что есть вот такой вариант
решения. Разве я на нём настаивал? - SciFi(11.04.2022 11:13)
- я почему-то услышал: "гавнакоот, гавнакоот" )) Рефлекс уже! - Argon(11.04.2022 11:14)
- Кто сказал холивар? Просто показываю, что есть вот такой вариант
решения. Разве я на нём настаивал? - SciFi(11.04.2022 11:13)
- Вот только не надо тута холиваров C vs C++ ) Кесарю - кесарево. - Argon(11.04.2022 11:07)
- Еще раз уточню про замысел: оно не случайно совпало, именно так и
задумано. Есть несколько сущностей, которые имеют одинаковый набор
структур с одинаковым назначением, но разным набором данных. Вот
эти структуры и имеют одинаковые имена, ибо логично и некоторая
защита от ошибок в будущем. Argon(1546 знак., 11.04.2022 10:59 - 11:04)
- Не совсем понял про замысел Tyмблep(583 знак., 11.04.2022 08:48)
- Поменять имена - не вариант, ибо в этом замысел. С пространством
имен тоже не все гладко - надо подключать хедеры внутрь других
хедеров (где описываются классы). При этом using namespace желательно не применять, иначе оно просочится через весь ворох
хедеров с потенциальными проблемами. - Argon(10.04.2022 16:00)
- Врядли. Namespace - самое оно. И такое применение всегда дается первым, при обьяснении неймспейсов (т.е. читателю не придется ломать голову зачем так сделано) - Cкpипaч(07.04.2022 11:06)
- "... подключить несколько хедеров, содержащих одноименные
структуры" — это значит, что уже всё пропало. Сгорел сарай, гори и
хата. Наоборот надо больше ада, иначе гармония говнокода нарушится. - SciFi(07.04.2022 10:47)
- Такое может происходить с достаточно высокой вероятностью, когда в проекте используются несколько сторонних библиотек. У меня был такой случай, когда в разных библиотеках (не помню - каких) конфликтовали символы препроцессора E_OK, E_WAIT и пр. - il-2(07.04.2022 11:57)
- Ситуации разные бывают. Как-то мне в одной писишной программе
потребовалось эмулировать поведение нескольких девайсов, для этого
пришлось подключить несколько микроконтроллерных исходников. =AlexD=(232 знак., 07.04.2022 11:17)
- Естественно. Но это если исходить из презумпции здравого смысла.
Просто у меня уже сложилось впечатление о ТС по его предыдущим
топикам. Там что-то от секты свидетелей объектного ориентирования,
так сказать, потому и скепсис. И звените :-) - SciFi(07.04.2022 11:24)
- вы упускаете тот факт что очень часто приходится писать не свой
говнокод(это да - руки оторвать и в жепу вставить), а ссуко чужой.
зазчику руки не оторвешь, он ими денек должен заплатить. приходится
делать онанизьм... не мы такие, такое е вот такое развитие
производственных сил и методов. - klen(07.04.2022 13:41)
- Я бы, наверное, сначала смотрел в сторону обработки вот этого
зоопарка подключаемых исходников скриптами в процессе сборки, а не
полагаться сразу на компилятор. Но это, наверное, сишная привычка.
В конечном итоге важно ехать, а не какие там шашечки. - SciFi(07.04.2022 13:50)
- дык заявлено что чужой код нельзы править. какая есть архи ектура - с ней и работай - klen(07.04.2022 14:02)
- Я бы, наверное, сначала смотрел в сторону обработки вот этого
зоопарка подключаемых исходников скриптами в процессе сборки, а не
полагаться сразу на компилятор. Но это, наверное, сишная привычка.
В конечном итоге важно ехать, а не какие там шашечки. - SciFi(07.04.2022 13:50)
- Ну в данном случае вы пернули в лужу, пузыри знатные ) - Argon(07.04.2022 11:27)
- Я уточню для интересующихся, если таковые найдутся. SciFi, видимо,
возбудился от тем по ссылкам -> Argon(930 знак., 07.04.2022 11:44, ссылка, ссылка)
- А можно пару слов, для расширения кругозора, о том что такое SBC? - Cкpипaч(07.04.2022 12:07)
- В телекоме это session boarder controller - пограничный контроллер
сессий. Однако в местном контексте это одноплатный компьютер -
single board computer. - Nikolay_Po(07.04.2022 12:47)
- А почему Котлин? В чем изюм? Как я понимаю, фреймворк веб-визуализации? Какой? - Cкpипaч(07.04.2022 13:25)
- В телекоме это session boarder controller - пограничный контроллер
сессий. Однако в местном контексте это одноплатный компьютер -
single board computer. - Nikolay_Po(07.04.2022 12:47)
- А можно пару слов, для расширения кругозора, о том что такое SBC? - Cкpипaч(07.04.2022 12:07)
- Я уточню для интересующихся, если таковые найдутся. SciFi, видимо,
возбудился от тем по ссылкам -> Argon(930 знак., 07.04.2022 11:44, ссылка, ссылка)
- вы упускаете тот факт что очень часто приходится писать не свой
говнокод(это да - руки оторвать и в жепу вставить), а ссуко чужой.
зазчику руки не оторвешь, он ими денек должен заплатить. приходится
делать онанизьм... не мы такие, такое е вот такое развитие
производственных сил и методов. - klen(07.04.2022 13:41)
- Естественно. Но это если исходить из презумпции здравого смысла.
Просто у меня уже сложилось впечатление о ТС по его предыдущим
топикам. Там что-то от секты свидетелей объектного ориентирования,
так сказать, потому и скепсис. И звените :-) - SciFi(07.04.2022 11:24)
- говнокод у тех кто пишет на сях. это нужно осознать и принять.
точка. - klen(07.04.2022 10:59)
- Коллега, Вы тоже фанат Паскаля? - Kpoк(07.04.2022 13:04)
- нет, я фанат Ломоносова и Эйлера - klen(07.04.2022 13:43)
- Ну для Ломоносова софтина на Фортране написана - Kpoк(07.04.2022 16:40)
- нет, я фанат Ломоносова и Эйлера - klen(07.04.2022 13:43)
- Писателям осей раскажи... про говонокод на сях, если руки растут из
одного места, тут только ножницы плохого танцора помогут. - PeterD(07.04.2022 11:18)
- я и есть один из тех кто их пишет. можешь меня чему то научить? - klen(07.04.2022 13:36)
- +1 - SERGHIO(07.04.2022 11:39)
- +1. Занятный факт: мне (новичку в ООП) приходится параллельно писать на C++ и Kotlin. Так вот: проделав этап работы в Kotlin и переходя в проект C++ я начинаю лучше его (C++) понимать. Argon(106 знак., 07.04.2022 11:07)
- Коллега, Вы тоже фанат Паскаля? - Kpoк(07.04.2022 13:04)
- Вам иногда лучше жевать, чем говорить. Мог бы объяснить смысл и
необходимость такой архитектуры, но не вижу смысла в самом
объяснении. - Argon(07.04.2022 10:53)
- это не архитектура, а ее отсутствие, нужно общие определения вынести в отдельный хедер и его уже включать Nikolay801_(189 знак., 07.04.2022 11:02)
- так и надо было объяснить в посте смысл сего действа. SciFi хоть
что то написал, чтобы пост хоть ненадолго всплыл. Я так глянул,
пожал плечами и дальше пошел. - abivan(07.04.2022 10:58)
- ...потом вернулся, высказал замечание и опять пожал плечами и дальше пошел :)) - Argon(07.04.2022 11:12)
- шаблонный параметр структуры думаю должен помочь, хотя наймспэйс тоже неплохо, этот механизм мощнее чем многие догадываются - klen(07.04.2022 10:57)
- Тупой и простой вариант: Tyмблep(75 знак., 10.04.2022 15:09)