Оказывает ли смысл в С++ определять физические единицы как отдельные типы и определять действительные операции между этими типами?
Есть ли какое-либо преимущество в том, что вы вводите множество типов и много перегрузок операторов вместо использования только простых значений с плавающей запятой для их представления?
Пример:
class Time{...};
class Length{...};
class Speed{...};
...
Time operator""_s(long double val){...}
Length operator""_m(long double val){...}
...
Speed operator/(const Length&, const Time&){...}
Где Time
, Length
и Speed
могут быть созданы только как возвращаемый тип от разных операторов?