给定int a;
,我知道以下返回最大值 a
能把持住。
numeric_limits<int>
::max()
但是,我想在不知道 a
的情况下获得相同的信息是一个 int
.我想做这样的事情:
numeric_limits<typeof<a>>
::max()
不是用这个确切的语法,但这甚至可以使用 ISO C++ 吗?
谢谢大家。 Aurélien Vallée 的
type_of()
最接近,但我不想在我们的代码库中添加任何额外的东西。由于我们已经使用了 Boost,Éric Malenfant 对 Boost.Typeof 的引用让我使用了
numeric_limits<BOOST_TYPEOF(m_focusspeed)>
::max()
我以前从未使用过它。再次感谢您提供如此多的消息灵通的回复。
最佳答案
template<typename T>
T get_lim( const T & x)
{
return numeric_limits<T>::max();
}
好处是您可以在不显式指定 T 的情况下使用它:
size_t l = get_lim(34);
关于C++ 在编译时获取对象类型,例如 numeric_limits<typeof<a>>::max()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1579232/