方案:
使用boost库中的numeric_cast类模板。
食谱3.7 获取数值类型的极值
问题:
想知道一个类型的最小值和最大值是多少
方案:
使用<limits>中的numeric_limits类。
#include<iostream>
#include<limits>
using namespace std;
template<typename T>
void showMinMax(){
cout<<"min: "<<numeric_limits<T>::min()<<endl;
cout<<"max: "<<numeric_limits<T>::max()<<endl;
}
int main(){
cout<<"short: "<<endl;
showMinMax<short>();
cout<<"int: "<<endl;
showMinMax<int>();
cout<<"long: "<<endl;
showMinMax<long>();
cout<<"double: "<<endl;
showMinMax<double>();
cout<<"unsigned short: "<<endl;
showMinMax<unsigned short>();
cout<<"unsigned int: "<<endl;
showMinMax<unsigned int>();
cout<<"unsigned long: "<<endl;
showMinMax<unsigned long>();
}
在ubuntu+gcc 4.1.2下结果如下:
short:
min: -32768
max: 32767
int:
min: -2147483648
max: 2147483647
long:
min: -2147483648
max: 2147483647
double:
min: 2.22507e-308
max: 1.79769e+308
unsigned short:
min: 0
max: 65535
unsigned int:
min: 0
max: 4294967295
unsigned long:
min: 0
max: 4294967295
没有评论:
发表评论