История изменений
Исправление alysnix, (текущая версия) :
Булев тип Типы bool8, bool16, bool32 и т.п.
поскольку вы решили (и зря) что true - это хоть один ненулевой бит в значении… то преобразования - bool32->bool16->bool8 вам придется делать с неустранимой проверкой, поскольку ненулевой бит может не полезть в более узкий тип. это раз.
по той же самой причине операции сравнения двух значений типа bool будут тоже наворотом с фактически приведением к каноническому true=1…. это двас.
не копируйте подход си. он не всегда полезный.
зы. типы с «фиксированной точкой» вообще тут рассматривать не надо, поскольку бул еще можно как-то (скрепя сердцем) преобразовывать к целым, но преобразовывать его к числам вообще - это перебор. то есть прямое явное преобразование була к фиксированной точке и float - надо запрещать(это спасет вас от случайных ошибок). если такой бред кто-то захочет сделать, пусть кастит бул в целое, а потом целое в вещественное.
Исходная версия alysnix, :
Булев тип Типы bool8, bool16, bool32 и т.п.
поскольку вы решили (и зря) что true - это хоть один ненулевой бит в значении… то преобразования - bool32->bool16->bool8 вам придется делать с неустранимой проверкой, поскольку ненулевой бит может не полезть в более узкий тип. это раз.
по той же самой причине операции сравнения двух значений типа bool будут тоже наворотом с фактически приведением к каноническому true=1…. это двас.
не копируйте подход си. он не всегда полезный.