gpt4 book ai didi

c++ - 在 C++ 中键入安全的物理操作

转载 作者:IT老高 更新时间:2023-10-28 13:23:35 25 4
gpt4 key购买 nike

在 C++ 中将物理单元定义为单独的类型并定义这些类型之间的有效操作是否有意义?

引入大量类型和大量运算符重载而不是仅使用普通浮点值来表示它们有什么好处吗?

例子:

class Time{...};
class Length{...};
class Speed{...};
...
Time operator""_s(long double val){...}
Length operator""_m(long double val){...}
...
Speed operator/(const Length&, const Time&){...}

TimeLengthSpeed 只能作为不同运算符的返回类型创建?

最佳答案

Does it make sens in C++ to define physics units as separate types and define valid operations between those types?

当然。标准 Chrono 库已经针对时间点和持续时间执行此操作。

Is there any advantage in introducing a lot of types and a lot of operator overloading instead of using just plain floating point values to represent them?

是的:您可以使用类型系统来捕获错误,例如在编译时向距离添加质量,而不会增加任何运行时开销。

如果您不想自己定义类型和运算符,Boost 有一个 Units library为此。

关于c++ - 在 C++ 中键入安全的物理操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19910888/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com