? Me pregunto por qué el uso de nombres nunca fue estandarizado por el estándar de C++. Evidentemente, tener diferentes algoritmos de creación de nombres perjudica la interoperabilidad [1] y no veo ninguna ventaja de tenerlo definido en la implementación.¿Por qué no se estandariza el nombre
Es decir, contrariamente a lo que ocurre con las convenciones de llamada o el tamaño de las primitivas, a la máquina en sí no le importa ni sabe cómo se llama a la función. Entonces, ¿por qué no estaba estandarizado y por qué aún no está estandarizado? Los compiladores han cambiado las reglas en el pasado de todas maneras entre versiones.
[1] todas las personas que exportan funciones como extern "C"
hablan volúmenes.
El uso de nombres estandarizados solo sirve para darle una falsa sensación de seguridad, porque también debe estandarizar la ABI para obtener la interoperabilidad adecuada. Y es poco probable que el comité de estándares de C++ esté en el negocio de estandarización ABI. –
+1 @Raymond - mentir sobre la interoperabilidad es una mala noticia. Es como confiar en un comportamiento indefinido. Claro, * piensas * que funciona, pero realmente no funciona. –
Es cierto, estar de acuerdo en un C++ ABI sería mucho más difícil que para C.Ligeramente OT: ¿Qué exactamente en esta pregunta no se considera una buena opción para SO por 3 personas? Después de todo, existe claramente una buena respuesta distinta, como ya se ha demostrado. – Voo