История изменений
Исправление
MOPKOBKA,
(текущая версия)
:
Не знаю как решается эта задача, но совместимые типы можно различать, нужно заменить _Generic на цепочку вложенных __builtin_choose_expr, различать типы можно с помощью аттрибутов: https://godbolt.org/z/hhTWfP1Ya
visibility не советую использовать, нужно подобрать аттрибут без эффектов.
Или это принципиально неразрешимая задача в языке C?
Если без расширений то да. Проверка типов по совместимости еще приводит к проблемам с enum, он просто работает как int.
Исправление
MOPKOBKA,
:
Не знаю как решается эта задача, но совместимые типы можно различать, нужно заменить _Generic на цепочку вложенных __builtin_choose_expr, различать типы можно с помощью аттрибутов: https://godbolt.org/z/hhTWfP1Ya
visibility не советую использовать, нужно подобрать аттрибут без эффектов.
Или это принципиально неразрешимая задача в языке C?
Если без расширений то да.
Исправление
MOPKOBKA,
:
Не знаю как решается эта задача, но совместимые типы можно различать, нужно заменить _Generic на цепочку вложенных __builtin_choose_expr, различать типы можно с помощью аттрибутов: https://godbolt.org/z/hhTWfP1Ya
visibility не советую использовать, нужно подобрать аттрибут без эффектов.
Исходная версия
MOPKOBKA,
:
Не знаю как решается эта задача, но совместимые типы можно различать, нужно заменить _Generic на цепочку вложенных __builtin_choose_expr, различать типы можно с помощью аттрибутов: https://godbolt.org/z/hhTWfP1Ya