189 похожих чатов

8 ответов

3 просмотра

вот вы раст раст. вот если вы в теме спрошу. 1. в расте есть шаблоны как в ++ (нет я не фанат метапрограммирования) но мне понравился CRTP шаблон для всяких алгоритмов и т.п особенно в эмбедет заходит. я даже црц для 03 плюсов написал ибо тянуть бустовый ну это ппц. 2. вчера в ++ чате не смогли дать решение для банальной задачи: template <class integral> constexpr integral flipbit(integral x, int b) noexcept { static_assert((b > 0) || (b <= sizeof(x) * CHAR_BIT), "WTF?"); //должно работать когда b известно в компайл тайм, иначе на совести программиста return x ^ (integral(1) << b); } может ли раст такое? 3. что не хватает в плюсах, так это выполнение кода для генерации чего либо. например есть функция генерации црц таблицы, вы пишите что-то типа: const crc_data[256] = get_table(); чтобы мы в компайл тайм выполнили get_table() по элементно или еще как, и заполнили таблицу и на флэшку уже записали таблицу, а не вот это вот пишем мелкую программку, выводим на консоль, копируем в исходник.

Alexey-Tsvetkov Автор вопроса
Stas Koynov
вот вы раст раст. вот если вы в теме спрошу. 1. в ...

Не, я в расте не секу. Слышал только, что его на какие-то мк завезли.

Alexey-Tsvetkov Автор вопроса
Stas Koynov
вот вы раст раст. вот если вы в теме спрошу. 1. в ...

Пробовал юзать crtp, может не правильно? Компилятор мне не сообщает, если я забыл метод в дочернем классе определить. Получается молчаливый вызов нул

Alexey Tsvetkov
Пробовал юзать crtp, может не правильно? Компилято...

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

Alexey Tsvetkov
Пробовал юзать crtp, может не правильно? Компилято...

ну странный шаблон я юзал у себя в црц, я сначала просто табличный метод написал, но потом понадобилось заюзать в загрузчике а там таблица не влезала. я через шаблон навтыкал алгоритм для таблцы байта, 4 бит. и просто битовый. щас хотел написать пул обьектов с разными распределителями тоже через рекурсивный шаблон, ибо ETL мне не понравился. но блин гады на работе нагрузили по самую сурепку.

статик_ассерт не работает ибо b не явл-ся константой времени компиляции, даже если она ей явл-ся. ибо аргументы функции не констэкпр

и как я это должен сделать? шаблон написать? мне нужно чтобы в этой функции аргумент, если он известен во время компиляции прошел через статик ассерт и дал мне гарантии, я хочу вот этого: http://open-std.org/JTC1/SC22/WG21/docs/papers/2019/p1045r1.html

Stas Koynov
и как я это должен сделать? шаблон написать? мне н...

Если только две реализации сделать. Одну с шаблонным b, а вторую с аргументом. Иначе, вроде, на сегодняшний день не получается

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта