Al no ser parte del comité estándar, tendré que especular un poco, pero aquí está mi suposición, por lo que puede valer:
1 – No son valores constantes para el lenguaje, porque el sistema de tipos les da múltiples representaciones posibles.
Hay al menos flotante, doble y complejo; seleccionar uno para favorecer no es bueno, y agregar el tipo a los nombres de un puñado de constantes diferentes es simplemente desordenado (y potencialmente se vuelve más desordenado en la próxima actualización del idioma) ya que el usuario tiene que saber cuál necesita de todos modos. Proporcionar un valor a una precisión que se puede convertir en todas las representaciones con una conversión de texto requiere que sean macros de preprocesador, lo que conduce a
- ¿Cuáles son las áreas más activas de investigación en matemática computacional?
- ¿Puedo obtener el código fuente para la exponenciación de bases fraccionarias con exponentes fraccionales en Java al igual que la función Math.pow pero sin usar la función?
- ¿Cómo se relacionan las matemáticas con la informática?
- Para los usuarios, ¿se está volviendo Facebook más valioso, útil y digno de más tiempo invertido o menos? ¿Por qué? ¿Hay alguna evidencia de Facebook de que la Ley de Metcalfe es cierta (para n usuarios, el valor de la red aumenta en nxn)?
- Cómo pasar por las clases de GE
2 – La intromisión con espacios de nombres de macros de preprocesador va más allá de especificar el idioma central.
Las macros se manejan antes de que la fuente se envíe al compilador de todos modos, y se aprovechan para tomar decisiones de diseño en implementaciones particulares. Abarrotar ese espacio de nombres lleno de requisitos de lenguaje estándar hace una separación pobre de las preocupaciones.
Dicho esto / adivinado, las especificaciones para las implementaciones de la biblioteca pueden definirlo, POSIX requiere que math.h los defina como M_PI y M_E, creo. Si su cadena de herramientas de elección la respeta cuando #define _POSIX_C_SOURCE a un valor apropiado, deben estar al alcance de su mano. Si eso te hace sentir incómodo y no quieres perforar muchos dígitos para tu propia macro, supongo que siempre puedes sacar e de la función exp y pi de atan o algo así.