我正在阅读(MSVC++ 2010)limits标题用于知识目的,并注意到这个小宝石:
template<class _Ty>
class numeric_limits
: public _Num_base
{
//...Insert min, max, lowest, epsilon,
//round_error, denorm_min, infinity, quiet_Nan, and signaling_Nan
//that return _Ty(0).
//In other words, this class does "nothing" in a "safe" manner.*
};
Run Code Online (Sandbox Code Playgroud)
紧随其后:
template<class _Ty>
class numeric_limits<const _Ty>
: public numeric_limits<_Ty>
{ // numeric limits for const types
};
template<class _Ty>
class numeric_limits<volatile _Ty>
: public numeric_limits<_Ty>
{ // numeric limits for volatile types
};
template<class _Ty>
class numeric_limits<const volatile _Ty>
: public numeric_limits<_Ty>
{ // numeric limits for const volatile types
};
Run Code Online (Sandbox Code Playgroud)
空课提供什么目的?为什么写呢?在这种情况下我理解模板的目的是因为模板特化以及传入常量,易失性或常量波动的非基本类型的可能性; 但是,在非模板使用的情况下,它提供了什么目的?
*"无"和"安全"在这种情况下是主观的术语,只有当读者毫无疑问地知道他们真的什么也不做并且安全时,他们的外行定义才适用.我没有,因此免责声明.