2
可能重复:
Why is std::numeric_limits<T>::max() a function?为什么numeric_limit <T> :: min/max不是常量?
我想知道,如果有人可以解释为什么落后和std::numeric_limit<T>::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();
......以及关于你问题的第二部分,关于模板实例,看到这个答案:http://stackoverflow.com/questions/2738435/using-numeric-limitsmax-in-constant-expressions/2738576#2738576 – 2011-05-16 00:36:01
@约翰:感谢这些答案,但我希望一个解决方案不基于在Boost上,因为我目前正在进行的项目中无法访问它。 – 2011-05-16 00:46:28
那么你可能想在下面使用Aaron的解决方案。 – 2011-05-16 01:21:34