为什么numeric_limit <t> :: min / max不是常量?</t>

时间:2011-05-16 00:28:14

标签: c++ numeric-limits

  

可能重复:
  Why is std::numeric_limits<T>::max() a function?

我想知道是否有人可以解释为什么std::numeric_limit<T>::minmax是函数而不是常量的原因?

此外,我想知道可以使用哪些技术将min / max值用作模板参数的一部分,例如:

template<unsigned long long max>
class foo
{
public:
   void boo() { std::cout << max << std::endl; }
};

.
.
.

foo<std::numeric_limits<int>::max()> f;
f.boo();

1 个答案:

答案 0 :(得分:5)

回到好老C!

foo< INT_MAX > f;

甚至

const int my_int_max = INTMAX;
foo< my_int_max > f;

适用于我的g ++(Debian 4.4.5-8)4.4.5