The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Дискуссия об использовании языка C++ для разработки ядра Linux"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Присылайте удачные настройки в раздел примеров файлов конфигурации на WIKI.opennet.ru.
. "Дискуссия об использовании языка C++ для разработки ядра Lin..." +/
Сообщение от Аноним (-), 17-Янв-24, 04:04 
> Вы предлагаете в структуры напихать методов на все случаи?

Я лишь констатировал что на си можно делать весьма по разному - в том числе даже и фокус на манер конструктора, вот, отколоть. Иногда даже может иметь свой пойнт. Нужно ли делать именно так в конкретном случае - на усмотрение програмера.

> удобно же, и читаемо.  :)

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

> А подобную инициализацию в портянки переписывать?

Я иногда что-то такое могу как макро заколотить кстати. Т.е. вон то было бы как-то типа
//     name, ..., ... ... rw
TEST1("Test1", 1000, 150, 2000,  0,  0);
TEST1("Test2", 500,   50,  100, 80, 32);
...
и при этом кстати не так уж важно как TEST1 внутри сделано. Можно и C++ легко осчастливить если станет нужно.

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

Т.e. как-то типа
TESTS_START(whatever)
TEST1(...);
TEST1(...);
TESTS_END

...при том так можно сделать парсер, фигарящий по массиву struct'ов от сих до сих, и что самое забавное - итерирование этого как массива - корректно работает. Даже на си. И да, при правильном подходе это и правда лишь пачка констант, вплоть до .rodata, в мк уйдет в флеху.

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

> C++ это не переваривает.

Если не ощибаюсь так только с C++20 можно.

>> В конечном итоге хруст, а вроде еще D, и кто там еще
> Так, идея в поддержке Си - исходников, а не переписывании.

Я даже как бы согласен, но если мир не идеален - упс, да, и чего? В C++ есть и еще пара отличий. Скажем auto до недавних пор в сях означало совсем другое. В C23 кстати это поменяли. C23 вооб ще довольно интрузивная штука. Но боюсь что комитета не хватит исправить наиболее жирные бестолковости сей. Типа, вот, дурных базовых типов и UB.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Дискуссия об использовании языка C++ для разработки ядра Linux, opennews, 14-Янв-24, 21:43  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру