W numeric_limits cechy ma być ogólny sposób pozyskania typu różne infomation, aby móc robić takie rzeczy jakJak obejść niespójną definicję numeric_limits <T> :: min()?
template<typename T>
T min(const std::vector<T>& vect)
{
T val = std::numeric_limits<T>::min();
for(int i=0 ; i<vect.size() ; i++)
val = max(T, vect[i]);
return val;
}
Problem polega na tym, że (przynajmniej przy użyciu MS Visual Studio 2008) numerycznych _ limity <int> :: min() zwraca najmniejszą liczbę ujemną, a numeryczne _ ogranicza < podwójne:: min() zwraca najmniejszy pozytywny numer!
Ktoś zna racjonalność tego projektu? Czy istnieje lepszy (zalecany?) Sposób korzystania z limitów numerycznych _? W moim konkretnej funkcji powyżej, mogę oczywiście zainicjować T VECT [0], ale to nie jest odpowiedź szukam ..
Zobacz również (floating-point-specyficzna) dyskusja here
W twoim przykładzie występują dwa błędy. 1. Funkcję należy nazwać max(), ponieważ oblicza ona maksymalny element. 2. wiersz "val = max (T, vect [i])" powinien być "val = max (val, vect [i])". – TonJ