putting-Funktion Definitionen in header-Dateien

Wenn Sie wollen, um die Funktion von Definitionen in header-Dateien, es scheint, gibt es drei verschiedene Lösungen:

  1. markieren Sie die Funktion als inline
  2. markieren Sie die Funktion als static
  3. setzen Sie die Funktion in einem anonymen namespace

(Bis vor kurzem war ich nicht einmal bewusst von #1.) Also, was sind die Unterschiede zu diesen Lösungen, und wenn ich, sollte ich lieber die? Ich bin in der header-only-Welt, so dass ich wirklich brauchen, die Definitionen in den header-Dateien.

  • Du hast vergessen: Schalten Sie in die Funktion Vorlagen. Das ist, was ich normalerweise bevorzuge.
  • nicht static zu verwenden, das führt zu vielen unterschiedlichen Kopien und Wahnsinn.
  • Der "eine Kopie in jedem anonymen namespace" - Lösung führt zu den gleichen Wahnsinn.
InformationsquelleAutor fredoverflow | 2011-10-20
Schreibe einen Kommentar