Re[11]: А С++ то схлопывается...
От: alex_public  
Дата: 04.11.19 14:07
Оценка:
Здравствуйте, B0FEE664, Вы писали:


_>>Ну а если говорить о крупных вещах, то я уже довольно давно не представляю себе современного кода без автоматического вывода типов

BFE>А! Ну, это прямо запрещено правилами: никаких целых без указания размерности. Т.е. не int, а int32_t; не char, а uint8_t ...

И как это противоречит автоматическому выводу типов? )))
Re[12]: А С++ то схлопывается...
От: B0FEE664  
Дата: 04.11.19 14:15
Оценка:
Здравствуйте, alex_public, Вы писали:

_>>>Ну а если говорить о крупных вещах, то я уже довольно давно не представляю себе современного кода без автоматического вывода типов

BFE>>А! Ну, это прямо запрещено правилами: никаких целых без указания размерности. Т.е. не int, а int32_t; не char, а uint8_t ...
_>И как это противоречит автоматическому выводу типов? )))
Вот так нельзя:
auto i = fun();
И каждый день — без права на ошибку...
Re[12]: А С++ то схлопывается...
От: B0FEE664  
Дата: 04.11.19 14:44
Оценка: :)
Здравствуйте, so5team, Вы писали:

BFE>>>>Ну раз нет динамического выделения памяти, значит нет виртуальных функций,

S>>>Каким боком динамическая память к виртуальным функциям?
BFE>>А зачем вам виртуальные функции если у вас есть целый объект?
S>А каким боком виртуальность функций к целому или не целому объекту?

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

S>Есть ощущение, что вам матчасть нужно сперва подучить.

Это иллюзия.

S>>>Опять же, где именно шаблоны, лямбды или structured binding с if constexpr взаимоувязаны с динамической памятью?

BFE>>Вопрос не только в динамической памяти, это просто пример. Всё гораздо сложнее.
S>Давайте разберемся с более простыми вещами: где именно шаблоны, лямбды или structured binding с if constexpr взаимоувязаны с динамической памятью?
Никак не увязаны.

BFE>>Например, в std::array::at(size_type n ); есть ветка бросающая исключение. Если в коде нет ошибки, то эта ветка никогда не вызовется => нет 100% покрытие кода тестами => проверка кода провалена. Я же писал: бюрократия и особые требования.

S>Так у вас если нет динамической памяти и исключений не будет.
Это почему вы так думаете? Насколько я помню стандарт, память под исключения выделяется особым образом. Вроде бы implementation defined.

S>О каких-таких ветках вы говорите?


00164       const_reference
00165       at(size_type __n) const
00166       {
00167         if (__n >= _Nm)
00168           std::__throw_out_of_range(__N("array::at"));  <--- об этой ветке
00169         return _M_instance[__n];
00170       }

источник
И каждый день — без права на ошибку...
Re[12]: А С++ то схлопывается...
От: B0FEE664  
Дата: 04.11.19 14:46
Оценка:
Здравствуйте, Nikе, Вы писали:

BFE>>Согласен.

BFE>>А на вопрос вы ответите?
N>Я ответил.

Что же должен делать автопилот, когда кончилась память?
И каждый день — без права на ошибку...
Re[21]: А С++ то схлопывается...
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.11.19 14:53
Оценка:
Здравствуйте, alex_public, Вы писали:

_>Здравствуйте, Marty, Вы писали:


M>>>>ADC/DAC/I2C/SPI/UART/CAN/TIM/DMA etc

_>>>Я в курсе что такое периферия. Мне не понятен термин "работы" с ней, в контексте IDE.
M>>Смотреть в отладке на регистры

_>Так регистры же все отображены в память, и соответственно банальный gdb без проблем подтягивает их значения (можно хоть в командной строке смотреть), и далее любая IDE показывает их в стандартном интерфейсе отладчика (отслеживания переменных). Что там ещё может быть нужно? )


Удобство пользования этим
Маньяк Робокряк колесит по городу
Re[20]: А С++ то схлопывается...
От: Ночной Смотрящий Россия  
Дата: 04.11.19 14:54
Оценка:
Здравствуйте, CreatorCray, Вы писали:

M>>Развлекаться, постоянно сливаясь — довольно странное удовольствие. Не?

CC>Мазохист поди

Да не, это классическое "притворись троллем".
... << RSDN@Home 1.3.17 alpha 5 rev. 62>>
Re[3]: Слезная просьба
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.11.19 14:55
Оценка: +1 :)
Здравствуйте, smeeld, Вы писали:

M>>к гражданам сишечникам


M>>Оченно прошу — расскажите, где вы работаете. И нет, не то, что вы подумали — давайте обойдемся без говна с оскорблениями и пр. — я к вам резуме посылать не буду, как раз и хочу избежать этого шага — нет смысла — и вам тоже проще


S>Всё просто-не пытайтесь устроиться работать в компании, с оборотом больше $100M и собственным фондом софта размеры которого больше гигабайта исходников (суммарный размер последних релизных веток). И тогда избежите встречи с кодом, который по-Вашему, несомненно компетентному мнению эксперта, считается говнокодом. Пилите и дальше свои хеллоуворлды кучкой единомышлеников-говноэкспертов.


Код меня не пугает, меня пугает возможность наткнуться на таких коллег, как вы. А с учетом того, что и вы, и Денис шафруетесь аки штирлицы, эта вероятность остается ненулевой
Маньяк Робокряк колесит по городу
Re[34]: А С++ то схлопывается...
От: so5team https://stiffstream.com
Дата: 04.11.19 14:55
Оценка:
Можно было бы конечно играть и дальше в игру "не бей лежачего" и указывать вам на проблемы в вашей "логике", типа блог не читаю, но цитирую оттуда по памяти. Не говоря уже про то, что от so5team нужно было еще как-то на блог одного конкретного участника из so5team выйти. Можно было бы провести вашей физиономией по фразе "А вдруг не я не имею отношения к Scrapinghub? Извинишься перед ними?" и задать вопрос о том, а за что именно мне нужно извиняться перед Scrapinghub.

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

Или можно с другой стороны зайти: а чего добились вы?

Рискну предположить, что вы в очередной раз прикинитесь ветошью.
Re[11]: А С++ то схлопывается...
От: Pzz Россия https://github.com/alexpevzner
Дата: 04.11.19 14:57
Оценка: +1 :)
Здравствуйте, Nikе, Вы писали:

N>Шаблонное месиво как нужно для того, чтобы было удобно использовать. Оно, месиво, лежит в специальном месте и никому не мешает, а дальше ты уже пишешь быстро, эффективно и безопасно, а не как в С. А генерируемый код при этом такой же или более эффективный.


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

Насчет быстро и эффективно, это не простой вопрос. Чтобы вставить объект в середину вектора объектов, простым советским memmove не обойдешься, придется конструкторы дергать. В новомодном C++ для этого, наверное, уже придумали какой-то навороченный синтаксис, состоящий из необычного сочетания обычных знаков препинания , но слабо могу себе представить, чтобы простой программист в своей прикладной программе им воспользовался.
Re[11]: А С++ то схлопывается...
От: Pzz Россия https://github.com/alexpevzner
Дата: 04.11.19 14:59
Оценка:
Здравствуйте, B0FEE664, Вы писали:

Pzz>>Отказ автопилота — это штатная ситуация. К аварии она приводит, если авиакомпания экономит на обучении персонала, и пилоты не имеют навыка летать "на руках".


BFE>Это ответ на вопрос? Т.е. вам всё равно, есть в автопилоте динамическая аллокация памяти или нет?


Ну в общем да, мне все равно.

Кстати, аллокация на стеке тоже динамическая, стек тоже может кончиться. В отличии от кучи, при этом можно даже исключения не получить.
Re[12]: А С++ то схлопывается...
От: B0FEE664  
Дата: 04.11.19 15:01
Оценка: :)
Здравствуйте, Nikе, Вы писали:

BFE>>У меня 46 позиция в рейтинге С/С++ на этом сайте, а вас только 191-ая.

N>Зато я С++ знаю, а ты — нет.

Я знаю С++ лучше вас.
И каждый день — без права на ошибку...
Re[13]: А С++ то схлопывается...
От: so5team https://stiffstream.com
Дата: 04.11.19 15:04
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

BFE>Если у вас есть указатель на базовый класс, то вызов виртуального метода оправдан.

BFE>Но откуда у вас указатель, если все объекты либо глобальные/статические, либо лежат на стеке? (разумеется рекурсивные вызовы без ограничения глубины на стеке запрещены)

Вы не можете ответить на простой вопрос. Когда сможете, тогда и можно будет продолжить разговор. Расписывать здесь пояснения элементарных вещей на три экрана у меня нет возможности.

Так что еще раз: А каким боком виртуальность функций к целому или не целому объекту?

S>>Есть ощущение, что вам матчасть нужно сперва подучить.

BFE>Это иллюзия.

Вы себе сильно льстите.

S>>>>Опять же, где именно шаблоны, лямбды или structured binding с if constexpr взаимоувязаны с динамической памятью?

BFE>>>Вопрос не только в динамической памяти, это просто пример. Всё гораздо сложнее.
S>>Давайте разберемся с более простыми вещами: где именно шаблоны, лямбды или structured binding с if constexpr взаимоувязаны с динамической памятью?
BFE>Никак не увязаны.

Вот и получается, что отсутствие динамической памяти вообще никак не превращает современный C++ в Си с классами. Поэтому у вас в исходном утверждении ошибка. Что и определяет все последующие заблуждения.

S>>Так у вас если нет динамической памяти и исключений не будет.

BFE>Это почему вы так думаете? Насколько я помню стандарт, память под исключения выделяется особым образом. Вроде бы implementation defined.

Потому что в распространенных реализациях память для исключений гарантированно есть только под bad_alloc. Остальные объекты исключений размещаются в хипе. Что и делает возможным существование exception_ptr, который для исключений работает как умный указатель.

Соответственно, если у вас нет динамической аллокации, то и исключений, скорее всего, не будет.
Re[12]: А С++ то схлопывается...
От: B0FEE664  
Дата: 04.11.19 15:04
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Кстати, аллокация на стеке тоже динамическая, стек тоже может кончиться. В отличии от кучи, при этом можно даже исключения не получить.


По правилам, рекурсивные вызовы разрешены только с подсчётом глубины вложенности и константным ограничением оной.
И каждый день — без права на ошибку...
Re[9]: А С++ то схлопывается...
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.11.19 15:11
Оценка:
Здравствуйте, B0FEE664, Вы писали:

BFE>Так получается C с классами, а не C++.


Нет


CC>>Это всё решается на уровне библиотек и требований к стилистике кода. Функционал языка же остаётся.


BFE>Часть функционала оказывается неиспользуемой. Зачем, например, виртуальные функции, если нет динамически создаваемых объектов?


Например, фабрика, возвращающая указатели на статические синглтоны в зависимости
Маньяк Робокряк колесит по городу
Re[11]: А С++ то схлопывается...
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.11.19 15:14
Оценка:
Здравствуйте, B0FEE664, Вы писали:


_>>Более того, я могу предположить, что не существует вообще ни одной программы, которая использовала бы вот прямо все все возможности C++.

BFE>Да я не об этом. Я о том, что требования к коду написаны так, что почти ничего из С++ использовать нельзя.

Странно, а я в эмбеде использую практически всё. И даже думаю, что отказ от динамической памяти — это ошибка, и собираюсь её заюзать
Маньяк Робокряк колесит по городу
Re[9]: А С++ то схлопывается...
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.11.19 15:15
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:


BFE>Я это написал к тому, что нет никакой динамически выделяемой памяти, а тогда вместо С++ получается С с классами.


Это не так
Маньяк Робокряк колесит по городу
Re[13]: А С++ то схлопывается...
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.11.19 15:18
Оценка: +1
Здравствуйте, B0FEE664, Вы писали:

BFE>>>У меня 46 позиция в рейтинге С/С++ на этом сайте, а вас только 191-ая.

N>>Зато я С++ знаю, а ты — нет.

BFE>Я знаю С++ лучше вас.


Ну, судя по утверждениям в этой теме — это далеко не так
Маньяк Робокряк колесит по городу
Re[9]: А С++ то схлопывается...
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.11.19 15:19
Оценка:
Здравствуйте, B0FEE664, Вы писали:

_>>Глупости какие. Я например периодически пишу код для МК и использую там на полную удобства C++17 (скоро уже на 20 буду переползать). При этом там естественно нет динамического выделения памяти в принципе.


BFE>Ну раз нет динамического выделения памяти, значит нет виртуальных функций, смарт указателей, контейнеров...


Выделенное есть.
Контейнеры и смарт указатели — да, их нет


BFE>Что именно от C++17 вы используете?


От 11ого — всё остальное
Маньяк Робокряк колесит по городу
Re[12]: А С++ то схлопывается...
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 04.11.19 15:22
Оценка:
Здравствуйте, Nikе, Вы писали:

BFE>>А зачем вам виртуальные функции если у вас есть целый объект?

N>Их придумали, только чтобы тормозить выполнение в 100 раз, "Денис" не даст соврать!

Более того, я их использую именно для этого.

И да, кстати, была у нас задача — снизить скорость компиляции во много раз. Было тяжело, но мы справились
Маньяк Робокряк колесит по городу
Re[11]: А С++ то схлопывается...
От: Pzz Россия https://github.com/alexpevzner
Дата: 04.11.19 15:23
Оценка:
Здравствуйте, so5team, Вы писали:

S>Чем они строгие? Любой в v может записать все, что захочет.


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

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

А, ну да, у вас в команде нет индусов. Будут, это вопрос времени.

S>Это в Pascal-е было за 30 лет до появления Go.


Ну во-первых, паскале не было. Во-вторых, все уже было в LISP, за 50 лет до появления всех прочих языков, не считая Фортрана. А в третьих, какая разница, где что и было?
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.