Под чистым я понимаю тип наподобие enum (то есть, конечное подмножество целых чисел + NaPE (not a proper element)-value), но в котором
не допускается двух одинаковых значений (нельзя писать enum{a = 1, b = 1}; )
и как следствие
— присутствует возможность определения числа элементов этого типа
— присутствуют возможность перечисления по порядку значений в цикле
— присутствует операция конвертации из целочисленного типа в данный с автоматическим приведением к NaPE-value в случае невозможности выполнения?
Зачем программистов до сих пор заставляют все это делать вручную?