【发布时间】:2014-04-10 15:28:51
【问题描述】:
我正在设计一个 RGB 颜色表示的类。 它具有三个属性:红色、绿色和蓝色。
到目前为止,我拥有 unsigned char int 类型的这 3 个属性(从 0 到 255)。我想使用 C++ 模板,所以我也可以使用其他类型,例如 float、double 或 int。
但是,我需要知道最大值,这可能可以用 std::numeric_limits 解决。问题是浮点数。它们应该在 0..1 范围内。你有什么想法可以解决这个问题吗?
我的目标是能够将红色、绿色和蓝色从未知类型转换为数字 0..1。
【问题讨论】:
-
带有 std::is_floating_point 的模板特化,只接受 0 到 1 之间的值作为 RGB 值。