我有一组c ++文件,这些文件是由我们无法更改的工具自动生成的。这些文件在运行时根据用户输入进行编译。这些文件有`double f = userInputs;定义。 userInputs由可能提供25u输入的用户提供。所以自动生成的文件会写入双f = 25u。 现在我希望在userInputs中你可以在代码中替换为* 1.06-6。但这是自动生成的,而不是我的控制。
所有自动生成的代码都使用我控制的文件stdAfx.h。我可以在这个文件中执行#define或typedef ec,这样即使用户说25u,带有double f = userInputs的自动生成的文件也会正确编译吗?
答案 0 :(得分:-1)
你可以做#define double DoubleWrapper
。 DoubleWrapper
将有一个构造函数接受unsigned int
,将其内部存储为双倍乘以您想要的数字。您可能也想添加一个普通的double
构造函数。
你还应该向double
添加一个强制转换操作符,它将返回它内部存储的变量。
这样你的被替换的双子就像双处所有,除非:
根据项目的结构,这可能是可以接受的,也可能是太多的限制。
另请注意: