ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
22 июля
1135419
klen (29.09.2021 14:28, просмотров: 560)
предварительно: наконец то подзавел аля C++20 std::format, всю жисть мечтал на микроконтроллере иметь красивый вывод и помножить на нуль printf c его генетическими косяками. 

в общем так

1. согласно стандарту 20 это предложение P0645R10, тут можно почитать че дека и как это хорошо и как нуну реализовывать в компиллере:

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p0645r10.html

https://en.cppreference.com/w/cpp/20


2. gcc версии 12 почти полностью уже реализует C++20 чем я усиленно пользуюсь в угоду оптимизации выходного кода, но std::format еще не пилили.. взял один из возможных проработанных драфтов на основе которого скорее всего будет перенос (есть другие альтернативы с приемлемой придурью)

https://fmt.dev/latest/index.html

https://github.com/fmtlib/fmt


3. потратив 4 вечера перед сном на портирование добился того что компиляется под кортексик, и правильно работает. убрал внешние зависимости характрные для кода "больших машин", убрал ОС-зависимость. все работает но есть косяг. пока полностью выдрать функционал шаблонных параметров wchar и locale не удалось, если на locale сделал затычки по короткому, то для wchar тянется вся портянка wchar функций работы со строками которых в embedded-like libc отродясь особо не водилось. вместо них тоже враперы воткнул. в итоге лишние неработающие 100к кода - шаблон не знает че вы воткнете на инпут поэтому wchar тоже должен быть обработан по его мнению.


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