【发布时间】:2010-05-20 17:25:04
【问题描述】:
我创建了一个类,该类对可变粒度每日时间表中的时间段进行建模,例如,第一个时间段是 30 分钟,但第二个时间段可以是 40 分钟,第一个可用时间段从 (一个与) 1 相当的值。
我现在要做的是以某种方式定义该类采用的最大和最小允许值,为此我有两个实际问题:
1.- 以这种方式为自定义类定义绝对最小值和最大值是否有意义?或者更好的是,在给定类的定义关系运算符的情况下,一个值总是比较低于该类型的任何其他可能值就足够了,被定义为最小值? (同样适用于最大值)
2.- 假设前面的问题有一个以“是”(或“是但...”)为模型的答案,如何定义这样的最大/最小值?我知道有std::numeric_limits<>,但从我读到的内容来看,它是用于“数字类型”的。我是否将其解释为“表示为数字”的意思,还是可以做出更广泛的假设,例如“用数字表示”或“与整数有对应关系”?毕竟,为日期类和字典类定义最小值和最大值是有意义的,但numeric_limits 可能不适合这些用途(我没有太多经验)。另外,numeric_limits 有很多额外的成员和信息,我不知道该怎么做。如果我不使用numeric_limits,C++ 还提供了哪些其他众所周知/广泛使用的机制来指示类的可用值范围?
【问题讨论】: