我正在尝试定义我自己的数据类型(称为sfloat
),它类似于浮点数,但使用不同数量的尾数位和指数位以更好地适应我的数据范围和精度。目标是定义一种新的数据类型,可以替换现有应用程序中的浮点数。到目前为止一切正常,除了我无法覆盖或定义unsigned
运算符
unsigned sfloat(3.141527)
将返回此类的未签名版本,usfloat(3.141527)
.
似乎说明unsigned
符可能会被重载,因为 VS intellisense 没有在头文件中抱怨:
sfloat::sfloat(float f) { m_data = get16bit(f); }
operator unsigned() { /*Do stuff here */ };
但它不适用于声明和初始化:
unsigned sfloat myPi= 3.141527; // Error: expected a ';'
我什至不知道这是否可以在 C++ 中完成,我很好奇之前是否有人这样做过?