Zagadka: dlaczego maksymalna wartość liczb typu float to 1?

0

Początkowo miało iść jako pytanie, ale potem odkryłem odpowiedź, a jako że problem jest dosyć ciekawy, to zamieszczę jako zagadkę.

Pytanie: dlaczego poniższy kod wypisze 1?

#include <iostream>
#include <limits>
using namespace std;

int main() 
{
	cout << numeric_limits<float>::max << endl;
	return 0;
}

http://ideone.com/41hyR5

3

http://ideone.com/Vjumvt
Dlatego :D
Ale czemu bez nawiasów działa to musze doczytać.
// edit już wiem
Niejawna konwersja pointera na funkcje do inta? (http://ideone.com/wnpJx7)

0

Na pewno brakuje nawiasów przy max, ale nie mam pomysłu co znaczy ta wyświetlana jedynka.

4

Jedyne do czego można skonwertować wskaźnik na funkcję tak, żeby std::cout mogło to wyświetlić jest bool. Stąd 1 albo true.

std::cout potrafi wyświetlić adresy wskaźników (za pomocą przeładowania operator dla void *) ale nie adresy funkcji. Typów wskaźników do funkcji jest dowolnie wiele więc nie może być przeładowania dla każdego z nich.

0

Wątek ma mylącą nazwę ;P

1 użytkowników online, w tym zalogowanych: 0, gości: 1