Perché è std :: numeric_limits :: max () una funzione?
-
03-10-2019 - |
Domanda
C ++ Standard Library il std::numeric_limits<T>::max()
valore è specificato come una funzione. Altre proprietà di un tipo specifico sono indicati come costanti (likestd::numeric_limits<T>::is_signed
). Tutte le costanti che sono di tipo T
sono dati come funzioni, mentre tutte le altre costanti sono dati come, pure, valori costanti.
Qual è la logica dietro questo?
Soluzione
Per espandere il commento di Neil, std::numeric_limit<T>
è a disposizione per qualsiasi tipo di numero compresi i numeri in virgola mobile, e se si scava attraverso la comp.lang.c ++ filo, vedrete la menzione che potrebbe non essere possibile definire le variabili statiche per valori a virgola mobile.
Quindi, per la coerenza che ha deciso di mettere entrambi i punti interi e galleggianti dietro metodi.
Si cambierà con C ++ 0x, quindi non c'è speranza.