Inline-Schlüsselwort mit Vorlagen
Bei der Betrachtung der Verwendung des Inline-Schlüsselworts mit Vorlagen stellt sich die Frage, ob es angesichts der Compiler-Eigenschaften redundant ist Fähigkeit, die Vorteile von Inlining zu ermitteln.
Die Antwort: Nein, das ist nicht der Fall Irrelevant
Trotz des Wissens des Compilers bleibt das Schlüsselwort inline für Vorlagen relevant. Während Funktionsvorlagen im Allgemeinen standardmäßig nicht inline sind, können sie durch ihre explizite Spezialisierung inline werden.
Spezifische Fälle
Es gibt Fälle, in denen das Weglassen des Schlüsselworts „inline“ zu Problemen führen kann . Betrachten Sie das folgende Beispiel:
#include "tpl.h"
#include "tpl.h"
#ifndef TPL_H #define TPL_H template<class T> void f(T) {} template<class T> inline T g(T) {} template<> inline void f<>(int) {} // OK: inline template<> int g<>(int) {} // error: not inline #endif
Das Kompilieren dieses Codes führt zu mehreren Definitionsfehlern, da g<> ist nicht explizit als inline markiert.
Faustregel
Um die Konsistenz aufrechtzuerhalten und potenzielle Fehler zu vermeiden, sollten Sie die Verwendung des Schlüsselworts inline für Funktionsvorlagen in Betracht ziehen, die inline sein sollen . Dies steht im Einklang mit der vorgeschlagenen Faustregel in „C Templates: The Complete Guide“ von Vandevoorde/Josuttis, die vorschlägt, inline zu schreiben, wenn es wirklich gewünscht ist.
Das obige ist der detaillierte Inhalt vonSollten Sie das Schlüsselwort „inline' mit C-Vorlagen verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!