LINUX.ORG.RU

История изменений

Исправление DarkEld3r, (текущая версия) :

И наоборот, для программистов на статических языках температура в цельциях, длина объекта и географическая широта — один тип.

Это каким-то догматизмом попахивает. Вот писали мы блокчейн на расте: высота, раунд и прочие штуки были отдельными (своими) типами, хотя всё это числа. В проекте, в котором сейчас участвую, есть ряд UUID-сущностей - тоже отдельные конкретные типы. В плюсовом проекте, в котором я участвовал до этого, есть код типа такого:

template <typename Value, typename Tag>
class Tagged;


struct АTag final{};
struct BTag final{};
...

using А = Tagged<double, ATag>;
using В = Tagged<double, ВTag>;
...

using Х = boost::variant<А, В, ...>;
using ХS = Vector<X>;

Да, никто не типизирует всё и всегда, ну и что? Это удобный инструмент и пользуются им не так редко, как тебе кажется.

Несмотря на то, что диапазон возможных значений в реальности существенно отличается.

Всё-таки «разные типы» и «правильные ограничения типов» - это не одно и то же.

Исправление DarkEld3r, :

И наоборот, для программистов на статических языках температура в цельциях, длина объекта и географическая широта — один тип.

Это каким-то догматизмом попахивает. Вот писали мы блокчейн на расте: высота, раунд и прочие штуки были отдельными (своими) типами, хотя всё это числа. В проекте, в котором сейчас участвую, есть ряд UUID-сущностей - тоже отдельные конкретные типы. В плюсовом проекте, в котором я участвовал до этого, есть код типа такого:

template <typename Value, typename Tag>
class TV;


struct АTag final{};
struct BTag final{};
...

using А = TV<double, ATag>;
using В = TV<double, ВTag>;
...

using Х = boost::variant<А, В, ...>;
using ХS = Vector<X>;

Да, никто не типизирует всё и всегда, ну и что? Это удобный инструмент и пользуются им не так редко, как тебе кажется.

Несмотря на то, что диапазон возможных значений в реальности существенно отличается.

Всё-таки «разные типы» и «правильные ограничения типов» - это не одно и то же.

Исходная версия DarkEld3r, :

И наоборот, для программистов на статических языках температура в цельциях, длина объекта и географическая широта — один тип.

Это каким-то догматизмом попахивает. Вот писали мы блокчейн на расте: высота, раунд и прочие штуки были отдельными (своими) типами, хотя всё это числа. В проекте, в котором сейчас участвую, есть ряд UUID-сущностей - тоже отдельные конкретные типы. В плюсовом проекте, в котором я участвовал до этого, есть код типа такого:

template <typename Value, typename Tag>
class TV;


struct АTag final{};
struct BTag final{};
...

using А = TV<double, ATag>;
using В = TV<double, ВTag>;
...

using Х = boost::variant<А, В>;
using ХS = Vector<X>;

Да, никто не типизирует всё и всегда, ну и что? Это удобный инструмент и пользуются им не так редко, как тебе кажется.

Несмотря на то, что диапазон возможных значений в реальности существенно отличается.

Всё-таки «разные типы» и «правильные ограничения типов» - это не одно и то же.