Che cosa dice una regola di definizione in C++? L'unica presenza affidabile che riesco a trovare è in The Language Programming in C++, 3rd. ed., P. 9.2.3. Esiste una definizione ufficiale della regola eccetto quella?Che cos'è esattamente una regola di definizione in C++?
risposta
la verità è nella norma (3.2 regola Una definizione):
Nessuna unità di traduzione deve contenere più di una definizione di qualsiasi variabile, funzione, tipo di classe, di enumerazione di tipo o modello.
[...]
Ogni programma deve contenere esattamente una definizione di ogni funzione non inline o oggetto che viene utilizzato in che programmare; nessuna diagnostica richiesta. La definizione può apparire esplicitamente nel programma, può essere trovata nello standard o in una libreria definita dall'utente, oppure (se appropriato) è implicitamente definita (vedere 12.1, 12.4 e 12.8). Una funzione in linea deve essere definita in ogni unità di traduzione in cui è utilizzato .
Uh, è un po 'più di questo. Riguarda anche più unità di traduzione. Ed eccezioni alla regola (questo rende un po 'difficile parlarne!). Saluti, –
In effetti, dovrei citare l'intera pagina, quindi sono andato per l'essenziale. – icecrime
- 1. C ha una regola di definizione come C++?
- 2. Che cosa è esattamente una variabile in C++?
- 3. Che cosa fa esattamente una dichiarazione di ritorno in C#?
- 4. Punto e virgola in Makefile definizione regola
- 5. namespace anonimi e l'unica regola di definizione
- 6. In che modo una regola CSS sostituisce un'altra regola CSS?
- 7. Che cos'è esattamente una "Console"?
- 8. Che cos'è esattamente una superficie in OpenGL ES o Direct3D?
- 9. Che cos'è esattamente una connessione in R?
- 10. Che cos'è esattamente una release in GitHub?
- 11. Definizione multipla di una funzione in codice C/C++
- 12. Che cos'è esattamente l'API LLVM C++
- 13. Definizione di 'enumeratore' in C#
- 14. Che cosa fa esattamente la parola chiave "using" in C++?
- 15. Seleziona una coppia di righe che obbediscono a una regola
- 16. Che cosa significa esattamente "chiusura"?
- 17. Che cosa è esattamente il contesto del thread in C#?
- 18. Che cosa significa esattamente una "connessione persistente"?
- 19. Che cos'è esattamente una chiave esterna?
- 20. Cosa fa esattamente # in C?
- 21. Che cos'è esattamente un assieme in C# o .NET?
- 22. Che cos'è esattamente una forma/codifica troppo lunga?
- 23. Definizione di una stringa accessibile globalmente in Objective-C
- 24. multipla Definizione di "..." c
- 25. Che cosa fa esattamente ReferenceLoopHandling.Ignore in Newtonsoft.json?
- 26. In che modo esattamente zsh estende glob?
- 27. Che cos'è questa sintassi di definizione di una strana funzione in C?
- 28. Che cosa è esattamente Java?
- 29. Che cosa fa esattamente _malloc in assembly?
- 30. Che cosa è esattamente un'espressione ID?
fortemente correlati: [Fa ridefinire una funzione della libreria standard violare la regola una definizione?] (Http://stackoverflow.com/q/41670800/514235) – iammilind