我正在编写一个应用程序,该应用程序允许用户选择整数存储的位大小并对其进行数学运算。他们可以选择 8、16、32 或 64 位存储作为有符号或无符号。这是在运行时设置和更改的,应用程序将使用给定类型进行数学运算。
用户交互示例:
- 进入 16 位模式
- 5C型
- 按加
- 2A型
- 按评估
- 返回 { value1.getSigned16() + value2.getSigned16(); }
我想避免为每个操作员编写 8 个案例。我认为指针或函数指针可能适用于此。评估方法不关心我使用的整数大小,只要它们相同即可。问题是我不知道如何实现这一点,因为指针关心返回的变量类型。我考虑过使用通用指针,但是当我需要取消引用时这对我没有帮助,我仍然需要 8 个案例。
value1.getProperSize() + value2.getProperSize();
// * This obviously won't work
int* getProperSize() {
if (size == 16) return (int16_t)storageValue;
if (size == 32) return (int32_t)storageValue;
// Etc...
}
非常感谢有关解决此问题的任何想法或建议。