Здравствуйте, alex_public, Вы писали:
_>>>И да, в коде на МК у меня виртуальных функций нет. Но это не потому, что мне как-то мешается отсутствие динамического выделения памяти, а исключительно потому, что они просто не были нужны. BFE>>Ну вот, хоть кто-то понимает...
_>Более того, сам по себе динамический полиморфизм нужен в достаточно редких случаях. Однако, т.к. в 90-ых другого подхода по сути и не было, тогда с помощью него решались абсолютно все задачи полиморфизма. И соответственно все библиотеки родом из тех времён (типа той же Qt и т.п.) до сих пор несут этот печальный отголосок прошлого. Хотя сейчас 90% таких задач можно удобно решить с помощью шаблонного параметра и лямбды. Однако к сожалению библиотек такого масштаба написанных на современном C++ не существует, поэтому приходится использовать что есть...
Шаблоны раздувают код
И шаблоны и лямбды — это опять же ненужные хрени, всё можно на сишечке переписать
Здравствуйте, alex_public, Вы писали:
_>Более того, сам по себе динамический полиморфизм нужен в достаточно редких случаях. ... Хотя сейчас 90% таких задач можно удобно решить с помощью шаблонного параметра и лямбды.
Очень любопытно, чем шаблоны в данном случае лучше? Типа быстрее и поэтому эти шаблоны везде нужно городить вместо обычного полиморфизма?
У сложных вещей обычно есть и хорошие, и плохие аспекты.
Берегите Родину, мать вашу. (ДДТ)
Здравствуйте, lpd, Вы писали:
lpd>Очень любопытно, чем шаблоны в данном случае лучше? Типа быстрее и поэтому эти шаблоны везде нужно городить вместо обычного полиморфизма?
Есть кстати хороший пример: boost::graph
Сплошной шаблонный полиморфизм и чудовищно неюзабельный интерфейс.
Я еще не видел человека, который бы назвал ее удобной.
Здравствуйте, B0FEE664, Вы писали:
N>>Сюрпрайз, это не гарантирует вообще ничего. Ты не ввёл запрета на то, что эта рекурсивность не будет вызвана где-то в глубокой вложенности, или в состоянии, когда на стеке кто-то не выделил временный большой блок данных.
BFE>Вы думаете это я правила составляю? Или вы думаете я будут перепечатывать все требования безопасности?
Я просто показываю очевидную глупость требования. Кстати оно никак не связано с собственно языком С или С++, оно просто является проявлением "имитация бурной деятельности".
Комплекс мероприятий по обеспечению безопасной разработки на С/С++ не так должен выглядеть.
Здравствуйте, Nikе, Вы писали:
BFE>>>>У меня 46 позиция в рейтинге С/С++ на этом сайте, а вас только 191-ая. N>>>Зато я С++ знаю, а ты — нет. BFE>>Я знаю С++ лучше вас. N>Ну-ну-ну, ты же тут уже писал как ты его знаешь. Это нормально для юниора, но не для сколько то опытного разработчика.
KP> Тут делать нечего, там почти одни нищеброды идейные:
B>>- embedded
Не знаю как в РФ с embedded, а в Германии (да и в штатах, насколько знаю) зарплаты на за C/C++ в embedded на уровне зарплат на Java по статистике. В последнее время ИМХО даже превышают из-за driver assystance system (активно используют С++14), self driving cars и прочих модных тем. Много контор компьютерным зрением занимаются. Вообще, мне по 1-2 предложения работы в день сейчас поступает — это еще не сезон + кризис.
Вообще С/С++ лучше себя чувствует там, где делают железо. На оутсорсинг такую разработку сложно отдавать: параллельно фиксаются проблемы в железе и софте и эмуляторов зачастую нет — разработка идет напрямую на железе. А отправлять железяки в далекие и не слишком надежные страны конторы боятся — еще продадут решения конкурентам. Да и много геморроя с пересылкой.
Так что может имеет смысл рассмотреть не смену языка программирования, а места жительства?
M>>Ну, ващет 1) сетевых сервисов не так и много,
НС>Много.
Немного
M>> и их таки вылизывают
НС>Т.е. линух не так плох?
При чем тут линукс, если всё тоже самое запускается на фряхе, или на любой другой системе?
M>>2) по настоящему защищенные сервера обычно делают на фряхе и её производных
НС>Не надо выдумывать.
Я не выдумываю
M>> 3) локально таки на порядки больше векторов для атаки, чем через сетевые сервисы
НС>Только это не особо кому интересно, взлом по стеи намного важнее.
С чего бы?
M>>4) таки сервера атакуют и хакают
НС>И там есть какие то особые проблемы именно у линукса?
S>Всё просто-не пытайтесь устроиться работать в компании, с оборотом больше $100M и собственным фондом софта размеры которого больше гигабайта исходников (суммарный размер последних релизных веток). И тогда избежите встречи с кодом, который по-Вашему, несомненно компетентному мнению эксперта, считается говнокодом. Пилите и дальше свои хеллоуворлды кучкой единомышлеников-говноэкспертов.
В таких компаниях и таких проектах коду часто больше лет, чем динозаврам. И говнокод там заботливо разложен просто повсюду. В частности потому что из этого гигабайта исходника примерно треть написана еще в 80-е 90-е, что он делает знает один человек, который давно на пенсии, а работать с этим кодом и интегрироваться с ним надо.
Поэтому в таких проектах заботливо копипастят все, что можно, куда только можно, потому что старый код не поддается нормальному разбиению на модули и компоненты. Билд-система архаична, писалась руками последние тридцать лет и занимает не самую маленькую часть того гигабайта исходников. Умеет компилироваться GCC 2.0 под DEC VT100, но любые архитектуры требуют усиленных напильников половины департамента. Ну и так далее и тому подобное.
Здравствуйте, Marty, Вы писали:
_>>Так я и спрашиваю, в чём проявляется это самое удобство. M>Что-та уже лень становится. Ты пробовал отлаживаться в кейле и в эклипсе, например?
Я работал (и естественно с отладкой в том числе, но только пошаговой — для реалтаймой есть отдельные инструменты типа STMStudio) в VisualStudio, Eclipse, Netbeans, QtCreator, CLion. По суммарным возможностям мне больше всего нравится QtCreator. По работе с отладчиком VisualStudio. Keil я как-то открывал, но увидев в 2010+ годах интерфейс и функциональность IDE уровня начал 90-ых, я в ужасе закрыл это недоразумение.
_>>Я уже молчу про то, что при использование библиотек от данного МК (типа HAL или LL), эти самые регистры не просто отображены в память, а ещё и находятся в соответствующих удобных объектных структурах, которые уж точно лучше подходят для контроля за периферией. M>Спасибо, я в курсе
Ну так если в курсе, то тогда поясни какое ещё удобство может быть нужно, помимо удобного и привычного отображения полей соответствующего объекта? )
Здравствуйте, alex_public, Вы писали:
_>>>Так я и спрашиваю, в чём проявляется это самое удобство. M>>Что-та уже лень становится. Ты пробовал отлаживаться в кейле и в эклипсе, например?
_>Я работал (и естественно с отладкой в том числе, но только пошаговой — для реалтаймой есть отдельные инструменты типа STMStudio) в VisualStudio, Eclipse, Netbeans, QtCreator, CLion. По суммарным возможностям мне больше всего нравится QtCreator. По работе с отладчиком VisualStudio. Keil я как-то открывал, но увидев в 2010+ годах интерфейс и функциональность IDE уровня начал 90-ых, я в ужасе закрыл это недоразумение.
Не подкинешь ссылок на настройку студии для эмбеда?
_>>>Я уже молчу про то, что при использование библиотек от данного МК (типа HAL или LL), эти самые регистры не просто отображены в память, а ещё и находятся в соответствующих удобных объектных структурах, которые уж точно лучше подходят для контроля за периферией. M>>Спасибо, я в курсе
_>Ну так если в курсе, то тогда поясни какое ещё удобство может быть нужно, помимо удобного и привычного отображения полей соответствующего объекта? )
Нужно мне состояние GPIO порта посмотреть — иду в peripherals, выбираю нужный порт, оно на отдельной вкладочке появляется, регистры там расписаны, с пояснениями, где надо отдельные биты/группы бит выделены, в реалтайме меняются, в реалтаеме же можно новое значение задать. Красота.
А, еще хз, может и есть в остальных средах — но в кейле через SWD без каких-либо шевелений принтфами пользоваться, и оно попадает в кейловское окошко (забыл, как оно точно зовется)
Ну а так да — в 96 году в инсте изучали 51 контроллеры , писали в кейле — я когда сюда пришел — смотрю — а кейл-то совсем не изменился
Здравствуйте, B0FEE664, Вы писали:
BFE>А вы доверили свою жизнь автопилоту с динамической аллокацией памяти?
Я не доверюсь автопилоту, писанному криворучками.
CC>>И хрен с ней, с STL библой CC>>С++ то тут при чём? BFE>Так получается C с классами, а не C++.
С какого перепугу? Весь функционал языка (те же темплейты) продолжает работать. Всего то не подключили пару хедеров
CC>>Это всё решается на уровне библиотек и требований к стилистике кода. Функционал языка же остаётся. BFE>Часть функционала оказывается неиспользуемой.
Какая?
BFE>Зачем, например, виртуальные функции, если нет динамически создаваемых объектов?
Не вижу связи.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, B0FEE664, Вы писали:
BFE>позвал двух бортпроводниц, в том числе молодую Канику Калу. Летчик объяснил им, как управлять самолетом, и ушел.
А при чём тут автопилот вообще?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, B0FEE664, Вы писали:
BFE>А зачем вам виртуальные функции если у вас есть целый объект?
Ты поди не знаешь что такое placement new
BFE>Вопрос не только в динамической памяти, это просто пример. Всё гораздо сложнее. BFE>Например, в std::array::at(size_type n ); есть ветка бросающая исключение.
Забудь про std навсегда.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pzz, Вы писали:
Pzz>в стандартном экране их 24.
Шта? Ты из какого года сюда пишешь?
Какие ещё нафиг 24?
У меня в окно вижуалки влазит 350х88, и это ещё шрифт довольно большой и панелька сбоку припиннута и не прячется.
Pzz>Строгие typedef'ы можно даже и в C сделать: Pzz>Арифметику будет делать неудобно
Потому так никто и не делает.
Pzz>Более того, к ним можно еще и методы приделать, в отличии от C++.
Шта?
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Здравствуйте, Pzz, Вы писали:
Pzz>Мы от чего защищаемся, от случайных ошибок, или от целенаправленного взлома?
Чукча не заметил, взял указатель не на ту структуру, а там в обеих поле v одинаковое, и всё сложится как миленькое и не чихнёт.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока