Я пишу типобезопасные универсальные структуры данных на языке C=news.ycombinator.com=

Я пишу типобезопасные универсальные структуры данных на языке C ( danielchasehooper.com )

HexDecOctBin 1 минуту назад | [–]
Основная идея здесь, по-видимому, заключается в использовании типа указателя функции для обеспечения безопасности типов, а не в использовании типа «дескриптора» данных (который часто встречается в реализациях, вдохновленных strechy_buffers Шона Барретта).

> Одна из раздражающих особенностей языка C заключается в том, что он не считает эти две переменные имеющими одинаковый тип.

C23 решает и эту проблему: https://www.open-std.org/jtc1/sc22/wg14/www/docs/n3037.pdf

Поддерживается последними версиями GCC и Clang, но не MSVC.

отвечать

gritzko 4 минуты назад | | [–]
Мне пришлось написать целый диалект C на основе этого трюка. С прагматической точки зрения я не увидел большой разницы с шаблонами C++. Разве что нотация более тяжеловесная.

https://github.com/gritzko/librdx/tree/master/abc

например, общая куча C: https://github.com/gritzko/librdx/blob/master/abc/HEAPx.h

отвечать

asplake 10 минут назад | | [–]
Интересно! Я работаю над игрушечным/образовательным генератором тегированных вариантов в стиле ML и связанных функций на языке C (для компилятора), и когда я немного продвинусь, я посмотрю, совместимы ли они.

отвечать

uecker 34 минуты назад | [–]
Это крутой трюк. Я уже использую его в своей экспериментальной библиотеке 😉 https://github.com/uecker/noplate/blob/main/src/list.h

отвечать


Рассмотрите возможность подачи заявки на набор в YC на осень 2025 года! Заявки принимаются до 4 августа

Source: news.ycombinator.com

Leave a Reply

Your email address will not be published. Required fields are marked *