Was genau ist eine Definitionsregel in C++?

Lesezeit: 1 Minute

Was genau sagt eine Definitionsregel in C++ aus? Das einzige vertrauenswürdige Vorkommen, das ich finden kann, ist in Die Programmiersprache C++, 3. Aufl., S. 9.2.3. Gibt es eine offizielle Definition der Regel außer dieser?

  • Stark verwandt: Verletzt die Neudefinition einer Funktion aus der Standardbibliothek die One-Definition-Rule?

    – iammilind

    16. Januar 2017 um 8:51 Uhr

Was genau ist eine Definitionsregel in C
Eiskriminalität

Die Wahrheit liegt im Standard (3.2 Eine Definitionsregel) :

Keine Übersetzungseinheit darf mehr als eine Definition einer Variablen, Funktion, eines Klassentyps, eines Aufzählungstyps oder einer Vorlage enthalten.

[…]

Jedes Programm muss genau eine Definition jeder Nicht-Inline-Funktion oder jedes Objekts enthalten die in diesem Programm verwendet wird; keine Diagnose erforderlich. Die Definition kann explizit im Programm erscheinen, sie kann in der Standard- oder einer benutzerdefinierten Bibliothek gefunden werden, oder sie ist (falls zutreffend) implizit definiert (siehe 12.1, 12.4 und 12.8). Eine Inline-Funktion muss in jeder Übersetzungseinheit definiert werden, in der sie verwendet wird.

  • Äh, es ist ein bisschen mehr als das. Es betrifft auch mehrere Übersetzungseinheiten. Und Ausnahmen von der Regel (das macht es ein bisschen schwierig, darüber zu sprechen!). Prost,

    – Prost und hth. – Alf

    16. November 2010 um 8:13 Uhr

  • In der Tat müsste ich die ganze Seite zitieren, also habe ich mich für das Wesentliche entschieden.

    – Eiskriminalität

    16. November 2010 um 8:14 Uhr


995990cookie-checkWas genau ist eine Definitionsregel in C++?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy