实现有界基元类型的c++

c++ implementing a bounded primitive type

本文关键字:类型 c++ 实现      更新时间:2023-10-16

我想创建浮点和整数类型,它们强制执行一些上界和下界,但在其他方面的行为与基元浮点和整数值类似。

我考虑过用自己的重载operator=来构造结构,以强制执行边界。

但我看不到一个解决方案不涉及创建float/int成员变量并使用它来代替常规的float/int

有没有一种方法可以使对象像基元类型一样使用?

我想创建浮点和整数类型,它们强制执行一些上界和下界,但在其他方面的行为就像基本浮点和int。

没关系。你不妨从这里开始,但当然你也可以自己写。

我曾想过用自己的运算符制作结构,以强制执行边界

为我工作。

。。。涉及制作float/int成员变量

是的。

。。。并使用它来代替常规的float/int

如果你担心必须到处写wrapper.value而不是只写wrapper,不要这样。

你可以用转换运算符处理所有这些,比如链接答案的

operator T const& () const { return val_; }

当您希望包装器类型隐式转换回基元时。

对于算术,如果不想在基元类型和有界类型之间转换,可以直接实现二进制算术运算符。