Информация об изменениях

Сообщение Re[7]: Аналог scoped enum до C++11 от 04.06.2018 1:46

Изменено 04.06.2018 2:12 Евгений Музыченко

Re[7]: Аналог scoped enum до C++11
Здравствуйте, kov_serg, Вы писали:

_>Вам не кажется что это доведение до абсурда?


Никоим образом. Если в языке есть идея строгой типизации — ее нужно использовать везде, исключительных случаев.

_>Може вы еще и такие типы хотите PositiveDouble, RangeDouble, MultiRangeDouble, DoubleWithAcceptedValues

_>и еще такие DoubleMeter, FloatTime, LongDoubleMass ...

Не хочу. По той простой причине, что тип double предназначен для вычислений, и диапазон его значений по определению не имеет разрывов, кроме пары неопределенностей. А тип enum, наоборот, для вычислений по определению не предназначен, и его значения не обязаны быть смежными. По сути, это такой примитивный аналог множества с постоянной мощностью 1, из которого можно принудительно сделать множества мощностью до 32-64.

_>Может лучше не плодить сущности, пораждаю лишнюю энтропию, а использовать по максимуму имеющиеся?


Имеющиеся сущности лучше использовать, когда они добавляют читабельности, безопасности и эффективности. Я бы хотел иметь в языке еще несколько возможностей для ограничения свободы компилятора по неявному преобразованию типов, а также пару десятков дополнительных предупреждений.
Re[7]: Аналог scoped enum до C++11
Здравствуйте, kov_serg, Вы писали:

_>Вам не кажется что это доведение до абсурда?


Никоим образом. Если в языке есть идея строгой типизации — ее нужно использовать везде, кроме исключительных случаев.

_>Може вы еще и такие типы хотите PositiveDouble, RangeDouble, MultiRangeDouble, DoubleWithAcceptedValues

_>и еще такие DoubleMeter, FloatTime, LongDoubleMass ...

Не хочу. По той простой причине, что тип double предназначен для вычислений, и диапазон его значений по определению не имеет разрывов, кроме пары неопределенностей. А тип enum, наоборот, для вычислений по определению не предназначен, и его значения не обязаны быть смежными. По сути, это такой примитивный аналог множества с постоянной мощностью 1, из которого можно принудительно сделать множества мощностью до 32-64.

_>Может лучше не плодить сущности, пораждаю лишнюю энтропию, а использовать по максимуму имеющиеся?


Имеющиеся сущности лучше использовать, когда они добавляют читабельности, безопасности и эффективности. Я бы хотел иметь в языке еще несколько возможностей для ограничения свободы компилятора по неявному преобразованию типов, а также пару десятков дополнительных предупреждений.