numeric_limits
funzioni sono tutti constexpr in modo che funzionano bene come costanti in fase di compilazione (supponendo che si sta utilizzando la versione corrente di C++). Quindi std::numeric_limits<double>::infinity()
dovrebbe funzionare in qualsiasi contesto.
Anche se si sta utilizzando una versione precedente, questo sarà ancora lavorare ovunque che non si richiede una costante di tempo di compilazione. Non è chiaro dalla tua domanda se il tuo uso ha davvero bisogno di una costante di tempo di compilazione o meno; essere semplicemente in testata non lo richiede necessariamente.
Se si utilizza una versione precedente, e si ha realmente bisogno di un tempo di compilazione costante, la macro INFINITY
in cmath dovrebbe funzionare per voi. In realtà è il valore float
per infinito, ma può essere convertito in double
.
@JamWaffles Le norme C sono in realtà sorprendentemente leggibile. Sono gli standard C++ che sembrano scritti da giuristi linguistici troppo zelanti. – Lalaland
Poiché la questione è tecnicamente chiede quanto a "C++" header #include dovrebbe essere usato al posto di # include . –
lefticus