История изменений
Исправление abcq, (текущая версия) :
Считаю что enum + union не может быть оверхедом
Сами по себе нет, но сам по себе структура енум и юнион не могут быть гибкой и самодостаточной системой типов. Есть код который работает с этим представлением данных системы типов, вот был бы метапрог котечкой-заечкой, он бы уже давно оттранслировал как раза этот код и было бы понятно с чем мы на самом деле имеем дело, и сколько приходится проводить проверок для того чтобы делать касты между типами, как эта структура заполняется новыми типами, какова цена на данное заполнение и так далее. Именно с этим кодом и надо сравнивать другие системы типов, а сам по себе скелет СУВТ в виде этой структуры - просто хранилище данных о типах.
Исходная версия abcq, :
Считаю что enum + union не может быть оверхедом
Сами по себе нет, но сам по себе структура енум и юнион не могут быть гибкой и самодостаточной системой типов. Есть код который работает с этим представлением данных системы типов, вот был бы метапрог котечкой-заечкой, он бы уже давно оттранслировал как раза этот код и было бы понятно с чем мы на самом деле имеем дело, и сколько приходится проводить проверок для того чтобы делать касты между типами, как эта структура заполняется новыми типами, какова цена на данное заполнение и так далее. Именно с этим кодом и надо сравнивать другие системы типов, а сама по себе скелет СУВТ в виде этой структуры - просто хранилище данных о типах.