【发布时间】:2014-09-07 23:01:26
【问题描述】:
我想用一些东西来获得正无穷大。但是,我的代码使用的数据类型是由其他人的类定义的。这意味着它可以是 int、float、double 和几乎所有数字类型。
以前当我使用无穷大时,我会用INT_MAX 来表示整数等等。但是,我可以确定(在编译时)我正在使用的类型吗?
我找到了this 的答案,但我认为这不是我要找的。p>
但另一方面,我想不出一种优雅的方法来实现这一点。
在代码中:
typedef float FT;
// in another file
//if FT is int
int inf = INT_MAX;
...
//if FT is float
float inf = FLOAT_MAX;
但是,这仍然不是很好,因为我想将它作为参数传递给函数。首先想到的问题是函数的签名是什么。
[编辑]
签名可以使用 typedef。
【问题讨论】:
-
“在运行时”没有意义。我认为您的意思是“在编译时”(而不是“在预处理时”)。