首页 > 解决方案 > 在 C++ 中重载 unsigned long

问题描述

有没有办法重载c ++中的内置unsigned long int函数,以便在它被分配负值的情况下自动抛出错误?

标签: c++overloadingunsigned-integer

解决方案


不,不可能“重载”类型。并且没有办法将负值分配给unsigned long标准 C++ 中的错误。

也就是说,一些编译器确实提供了在检测到这种情况时发出警告的选项。-Wsign-conversion适用于 Clang 和 GCC。需要注意的是,故意使用负值来初始化无符号整数是非常典型的。

您可以做的事情是定义一个模拟整数的类类型,但可能会在其赋值运算符重载中引发异常。然后使用该类而不是整数类型。


推荐阅读