Обновить
61
0
Смирнов Владимир@mapron

Программист C++

Отправить сообщение
Виртуальные методы, напомню, требуют дополнительную память и ресурсы процессора

Напомню, чтобы утверждать про ресурсы процессора, нужно сделать бенчмарк со сравнением.
У меня нет уверенности что
if (some_cond) obj->direct_call();
сильно быстрее условного obj->indirect_call() (по указателю), т.к. процессору переходы гораздо легче предсказывать без ветвлений (он уже видит куда дальше будет переход).

И по поводу памяти — если честно, смешно. Оверхед идет только на класс, таблица виртуальных методов одна на все объекты.
Да, у объекта появляется один указатель. Но у вас и так есть память под node_type; на 32-битной архитектуре разницы нет вообще. Да, на 64 битах наличие vtable вместо enum даст +4 байта, но вы реально в это упираетесь? Зато насколько будет чище код…

Простите, но статья никак не поможет разработчикам парсеров языков программирования. Как и «разобраться как сделать разбор КС-грамматики».
От простмотра метода parse() в
gitlab.com/2che/markedit/blob/master/parser.cpp
у меня, если честно, холодок по коже.

Ладно вы один раз это написали, а поддерживать как?
А если я вам скажу, что там в одной из строк ошибка, и вызывается не тот метод, вы ее быстро найдете?)

Такой код может и должен автогенерироваться.

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

Я писал интерпретатор паскаля сперва ручками, потом с помощью CoCo генератора, потом перешел на bison, если интересно, какой мой опыт.
Напомнило историю как в онлайн игре при низких настройках графики кусты, в которых должен был скрываться противник, просто не рендерились =)
ну собственно, с учетом того, что у них из названия понятно, что они занимаются 1С, другого ожидать не стоило)
Проанализировать-то может и легально, но вот выкладывать результат такового анализа мне кажется, ой как сложно, чтобы ничего не нарушить. Могут нагреть за публикацию даже пары строк кода.

Да и вопрос — зачем? Показать что в таком огромном проекте туева хуча опечаток допущенных по глупости? Реклама статическому анализатору для разработчиков из Microsoft? Ну, может быть, только как-то сомнительно выглядит. Лучше все же как сейчас, на максимально широкую аудиторию работать.
… и к нему тоже заведут issue #1 «Failed to compile on Linux»?
Ну и приложение из стандартной поставки Windows это тоже не «коммерческий успех», прошу заметить — кто его самостоятельно ставить-то или покупать будет? Так что мысль хорошая, только далековата от предмета статьи =)
Может быть, как раз понимает. Может быть, он тонко намекнул, что чиновникам стоит получить свое уважение несколько иным способом, нежели запретом каких-то публикаций.
Надо бы мне свой курсовичок залить с генератором компиляторов чисто на Qt без внешних зависимостей вроде бизона)
А так да, тортовость падает
Вы оставили заявку там, и коммент здесь, чтобы все видели? Зачем?)
Я сразу полез в подвал статьи искать то самое примечание со звездочкой, что-то вроде
*diaspora — это сепулькарий для ...

Ну предыдущие части хотя бы несли какую-то полезную нагрузку, хоть и служили для развлечения.
Эта же мне вообще не понятно, для чего)
Огромный это вы загнули, как правило это удар по одной конкретной пиццерии. У папыджонса та же фигня, в новосибе из одной может приехать нормально, а из другой — ощущение что половину начинки корова языком слизала) и ничего, не разорились же они?
Даже возможно «все пишут на JS, но у одного человека есть опыт с С++»
Есть более чем одна операционная система.
Ну в 101 и в 104 достаточно различий, ЕМНИП, т.к. приходилось реализовать и тот и другой (у них есть общие пакеты, а есть специфичные для каждого) ну и канальный уровень тоже отличается.
архетип «Мэри Сью» во всей красе :)
Да, спасибо, я был неправ. Покурил, почитал, посыпал пеплом голову)
Ну такой-то макрос поведение программы не изменит хотя бы)
  printf("%d\n", mul(x, y));

Мелкое занудство: в этом примере программа напечает что попало еще потому, что mul возвращает тип short, а print ожидает int.

Информация

В рейтинге
Не участвует
Откуда
Нижний Новгород, Нижегородская обл., Россия
Дата рождения
Зарегистрирован
Активность