Explicit Inline
-
Guten Morgen,
Im Unterricht haben wir gelernt das es 2 unterschiedliche Weißen von Inline: implizit inline und explizit inline.
Nur leider finde ich im Internet kaum was über explizit Inline.
Ich verstehe nicht wieso es ausgerechnet explizit heißt, vor alles weil es auf der iso Seite(z. B. https://isocpp.org/wiki/faq/inline-functions#where-to-put-inline-keyword) nie erwähnt wird und als einfaches inline gehandhabt wird.
Was sind den die Unterscheide zwischen implizit Inline und explizit Inline außer das die Methodendefinition in Unterschiedlichen Bereichen im Code sind.
Ist die Bezeichnung explizit Inline überhaupt richtig?
Meine Lehrer bezieht sich auf dieses Buch: http://www.amazon.de/Lernen-professionell-anwenden-Ulla-Kirch/dp/3826617649/ref=sr_1_3?ie=UTF8&qid=1450685343&sr=8-3&keywords=C%2B%2B+-+Lernen+und+professionell+anwenden
Hier steht (in der Amazon Blick ins Buch Funktion) auf der Seite 894 folgendes:
explizit inline heißt eine Methode, die außerhalb der Klasse definiert ist und der das Schlüsselwort inline im Funktionskopf vorangestellt ist. Innerhalb der Klasse wird die Methode wie jede andere Methode deklariert.
-
Eine Funktion, deren Definition sich innerhalb einer Klassendefinition befindet, also z.B. sowas hier
struct Blub { void f() { } };
ist automatisch inline, ohne dass du extra das Schlüsselwort hinschreiben musst. Sie ist also implizit schon inline. Du kannst das Schlüsselwort
inline
noch extra davorschreiben, das macht aber keinen Unterschied, da sie schon inline ist. Eine außerhalb einer Klassendefinition definierte Funktion ist dagegen nicht automatisch inline. Um sie inline zu machen, musst du explizit das Schlüsselwort hinschreiben (constexpr
wäre noch eine Ausnahme, darauf sei hier mal nicht weiter eingegangen)...inline ist inline; der einzige Unterschied ist, ob du extra was hinschreiben musstest, um das Ding inline zu machen...
-
Ist dir die Wortbedeutung von "explizit" nicht bekannt? "explizit" bedeutet, dass etwas ausdrücklich als etwas bezeichnet wird. "Explizit inline" bedeutet also, dass etwas die Eigenschaft "inline" hat, weil "inline" dran steht. "Implizit" ist das Gegenteil von "explizit". Wenn etwas "implizit inline" ist, dann hat es zwar die "inline"-Eigenschaft, aber es steht nicht ausdrücklich das Wort "inline" dran.
"explizit inline" und "implizit inline" sind keine Fachausdrücke. Das ist ganz normale deutsche Sprache.
-
SeppJ schrieb:
Wenn etwas "explizit inline" ist, dann hat es zwar die "inline"-Eigenschaft, aber es steht nicht ausdrücklich das Wort "inline" dran.
Sollte wohl "implizit inline" heißen...