-2

有没有办法为任意类型的变量分配T最小值或最大值?

template <typename T>
void setMax(T& var){
var=MAXIMUM_OF_TYPE_T; //can this be done?
}

T toBeMaxed;
setMax(toBeMaxed);

如果T是这样int,我也可以这样做

var=std::numeric_limits<int>::max();

反而。

4

1 回答 1

3

如果您只处理具有 的特化的类型,则std::numeric_limits<T>::max();可以按如下方式实现您的函数:

#include <limits>
template <typename T>
void setMax(T& var){
    var=std::numeric_limits<T>::max();
}
int main() {
    int intvar;
    setMax(intvar);

    float floatvar;
    setMax(floatvar);

    char charvar;
    setMax(charvar);
}
于 2012-10-10T01:47:22.907 回答