¿Qué dice exactamente una regla de definición en C++? La única ocurrencia confiable que puedo encontrar está en The C++ Programming Language, 3rd. ed., P. 9.2.3. ¿Hay alguna definición oficial de la regla excepto eso?¿Qué es exactamente una regla de definición en C++?
Respuesta
la verdad está en el estándar (3,2 regla Una definición):
Sin unidad de traducción deberá contener más de una definición de cualquier variable, función, tipo de clase, la enumeración de tipo o plantilla.
[...]
Cada programa deberá contener exactamente una definición de todas las funciones no-inline u objeto que se utiliza en ese programa; no se requiere diagnóstico. La definición puede aparecer explícitamente en el programa, se puede encontrar en el estándar o en una biblioteca definida por el usuario, o (cuando corresponda) está implícitamente definido (consulte 12.1, 12.4 y 12.8). Se debe definir una función en línea en cada unidad de traducción en la que se usa .
Uh, que es un poco más que eso. También se refiere a múltiples unidades de traducción. Y excepciones a la regla (¡esto hace que sea un poco difícil hablar de eso!). Cheers, –
De hecho, tendría que citar toda la página, así que fui por lo esencial. – icecrime
- 1. ¿Qué es exactamente una construcción en JavaScript?
- 2. ¿Qué es exactamente sun.jnu.encoding?
- 3. ¿Qué es exactamente una superficie en OpenGL ES o Direct3D?
- 4. ¿Qué es exactamente una "Consola"?
- 5. ¿Qué es exactamente súper en Objective-C?
- 6. ¿Qué es exactamente una ROM?
- 7. ¿Qué es exactamente Java?
- 8. Definición de regla de recurrencia (RFC2445) pregunta
- 9. ¿Qué es exactamente la API LLVM C++
- 10. ¿Qué es exactamente una Fábrica de clases?
- 11. ¿Qué es exactamente un filtro de origen?
- 12. ¿Qué es exactamente Parrot?
- 13. ¿Qué es exactamente Rake?
- 14. ¿Exactamente qué es PLINQ?
- 15. ¿Qué es exactamente Heroku?
- 16. ¿Qué es exactamente OWASP?
- 17. ¿Qué es CLI/C++ exactamente? ¿Cómo difiere de C++ "normal"?
- 18. ¿Qué es exactamente OData?
- 19. ¿Qué es hash exactamente?
- 20. ¿Qué es un trabajador de appharbor ... exactamente?
- 21. ¿Qué es exactamente JSON?
- 22. ¿Qué es LINQ exactamente?
- 23. espacios de nombres anónimos y la regla de una definición
- 24. ¿Qué es exactamente NoSQL?
- 25. ¿Qué es exactamente WPF?
- 26. ¿Qué es exactamente "manejar"?
- 27. ¿Qué es Container.DataItem exactamente?
- 28. ¿qué es exactamente una "máquina registradora"?
- 29. ¿Qué es exactamente una clave externa?
- 30. ¿Qué es exactamente una sección crítica?
fuertemente relacionada: [¿Tiene la redefinición de una función de la biblioteca estándar de violar la regla de una definición?] (Http://stackoverflow.com/q/41670800/514235) – iammilind