пришлось писать деревья или двунаправленные списки?
нет, мы только крудами озадачены.
Если нужны деревья - пора в царство ++
А на си деревья религия не позволяет реализовывать?
Никакой религии, только здоровый прагматизм. На начальных этапах развития полезно изобретать свои велосипеды 😉
Прагматизм - это когда ты пишешь код, который реализует задачу, а не когда в дополнение к нему плодишь 5млрд обёрток.
Скорее, это выполнение поставленной задачи - наиболее подходящим способом. 98% нужных оберток в написаны до рождения половины местных подписчиков 🤡 А не отстаивание в слюни толь С и ни чего кроме
Ты в сишном чате, ты на чужой земле)) Деревья на си написаны, удивительно, но тоже до рождения 90% местных участников.
А ты обряд посвящения у нас прошёл?
Зачем использовать Си, если есть плюсы ?
для прошивок без OSных железок
Чтобы получить нулевой оверхед, чтобы получить простой код, чтобы получить быструю компиляцию, ну и zero runtime))
ну если только там компилятора С++ нет. Но мой вопрос в том, зачем использовать чистый Си, если есть возможность использовать С++. Если возможности использлвать С++ нет, то тут понятно естесвенно.
Какой нулевой оверхед ? В плюсах вы получите такой же оверхед как и в Си, если не меньше за счет оптимизации компилятора- а уж код получится более кратким и удобным.
И получится си с расширениями
Не получится. Вещи с шаблонами из стдлибы всё ещё будут работать, да и вещи что на интринсиках работают. Да и в целом си не входит в плюсы
Единственный момент, где плюсы обгоняют си это колбеки, во всех остальных случаях на плюсах ты плодишь всякое лишнее говно.
Вы по себе судите ? Если вы пложите гавно на плюсах, это не значит, что остальные так же делают. О каком говне речь ?
И нужно определение говна тогда
Шаблоны ты и на препроцессоре сделать можешь. Си не входит в плюсы это верно, т.к. плюсы довольно много чего не поддерживают из си.
Да шаблоны на препроцессоре - это очень удобно. Говна в коде не получится
Там линуксяша выше написала, что неплохо отключить для минимизации говна)))
Стикер
Можешь
Шаблоны тьюринг полны, а препроцессор всегда имеет ограничение на глубину рекурсии, в связи с чем он не может реализовать шаблоны ни в каком виде
Отсутствие исключений и RTTI не стандартизировали какого-то хрена
Ну самые важные её части будут
Сомнительный аргумент, т.к. в препроцессинге у тебя практически в 100% случаях есть информация о пределе глубины рекурсии.
Как написать макрос, который каждый аргумент заворачивает в другой макрос и конкатит всё?
Без ограничений на кол-во аргументов
Не очень понимаю, ты хочешь просто сконкатить все аргументы или применить некий макрос ко всем аргументам?
#define MACRO(a) Some < a >, MAP(MACRO, 1, 2, 3, 4), Some < 5 >;
Так элементарно, классический мап макрос на рекурсии, глубину задаём исходя из стандарта.
Она будет ограничена, оно не сможет быть бесконечной
128 ~ бесконечность, т.к. это то, что гарантировал стандарт.
Нужно хотя бы 200 тысяч для минимума, а для реализации шаблонов так вообще бесконечность
Аргументов? С головушкой всё в порядке?
Для реализации шаблонов нужно, да
Пример пожалуйста в студию.
template <typename... Ts> auto Foo(Ts... args) -> void { (std::cout << ... << args); };
Не не не, ты не понял, пример использования будь любезен)
Про это я не говорила. Только про теоретическую реализуемость. Так вот это невозможно
Ну и это самое базовое. Как реализовать вот это? auto Foo() { Foo(42); Foo(3.1415); }; static_assert(kAutoTypes<> == kTypeList<int, double>); static_assert(AddType<float>()); static_assert(kAutoTypes<> == kTypeList<int, double, float>);
Ну и вот это тоже покажи как реализовать
Обсуждают сегодня