2013-08-21 20 views
13

Trovo tranquillo annoiare che devo usare la macro _USE_MATH_DEFINES per ottenere il valore di pi nel mio programma. O devo definirlo io stesso in una delle mie intestazioni. O devo usare boost e tutto il resto.Perché non esiste una definizione della costante pi nello standard C++ 11?

Mi dà solo fastidio che non ci sia un header C++ standard che lo definisca costante in modo portatile. C'è qualche ragione particolare per cui le costanti matematiche come la pi non sono nello standard C++? Potrebbe essere in una delle prossime versioni dello standard?

+2

è fastidioso ma richiesto. Basta aggiungere '_USE_MATH_DEFINES' nell'opzione del compilatore per evitare di aggiungerlo dall'intestazione. Questa è la soluzione migliore che posso suggerire –

+2

C'è sempre [boost] (http://www.boost.org/doc/libs/release/libs/math/doc/html/math_toolkit/constants.html) – Cubbi

+2

Tranne che il la macro è '_XOPEN_SOURCE' (che deve essere definita come 700), e la costante è' M_PI'. (Che di per sé è l'argomento più forte a favore della standardizzazione.) –

risposta

-5

Suppongo che non sia standardizzato perché non è davvero una preoccupazione importante. Davvero non vedo alcuna seccatura solo scrivendo un #define o const static, o semplicemente facendo un'intestazione con un gruppo di costanti matematiche di cui potresti avere bisogno. In realtà non ha nulla a che vedere con chiunque stia componendo lo standard mentre cerca di migliorare la lingua.

+11

Sicuramente è difficile codificarlo da solo perché potrebbe cambiare ... – BoBTFish

+1

@BoBTFish Un possibile modo per evitare errori consiste nell'utilizzare 'double pi = 4 * std :: atan (1.0);' – ilent2

+11

@BoBTFish Scommetterei indebite somme di denaro che il valore della costante matematica 'π' non cambierà molto presto ;-) – dasblinkenlight