@Nulltiton
P.S. пытался реализовать что-то подобное через define, однако, как и ожидалось вместо элемента был подставлен весь диапазон типов данных
Решения вопроса 0
Ответы на вопрос 3
@adressmoeistranici
индексация упоминаниями ассоциированного массива размеров не лишнее
и конечно явные преобразования данных по месту в switch или через union
Nulltiton, в само перечисление нужно вставить список перечислителей — для области видимости, чтобы их использовать в качестве упоминаний о типе
например назвать enum typeid { int_identity=0, bool_identity, и другие }
каждый чайник знает, а Вы подумали что я предлагаю новую форму синтаксиса с эллипсисом
а в массиве размеров индексация может быть проведена sizes[(size_t)typeid.int_identity]
@wataru
Edit: был не прав: variadic macro тут не поможет.
@mayton2019
Для функциональщины — нужно иметь абстрактный тип Any и коллекции типов которые — суть
подтипы Any. И функцию с pattern matching которая просто кастомизирует size() и прочие
функции. Короче почти ручная работа.
Задача интересная и мне кажется что она реально не решаемая в рамках чистого языка С.
Но если использовать кодо-генерацию (транспилляцию) то можно просто как-то автоматизировать создание
такой логики. Но будет ли это языком С или вообще чем-то другим — большой вопрос.