Namensräume
Varianten
Aktionen

Hilfe:Vorlagen

Von cppreference.com

Diese Seite beschreibt die auf diesem Wiki verwendeten Vorlagen.

Vorlagen bieten Mittel, um folgende Ziele zu erreichen:

  1. Qualität. Es wird einfach, den Inhalt zu ändern und somit Fehler zu beheben. Duplizierter Inhalt muss nur einmal bearbeitet werden.
  2. Konsistenz. Vorlagen machen den richtigen Weg, Dinge zu tun implizit.
  3. Benutzerfreundlichkeit. Fortgeschrittene Formatierung wird durch die Vorlagen vereinfacht.

Es gibt viele Vorlagen auf diesem Wiki. Die Liste aller Vorlagen ist verfügbar unter Special:AllPages. Da dieses Wiki Mediawiki CMS verwendet, können alle im Wikipedia-Projekt vorhandenen Vorlagen hier verwendet werden. Als zusätzlicher Vorteil kann die Vorlagendokumentation verwendet werden, um die Mediawiki-Vorlagensyntax zu erlernen.

Inhalt

[bearbeiten] Listen

Listen-Vorlagenfamilien

  • dsc **** : Zur Erstellung von Listen von Mitgliedsvariablen/-funktionen.
  • dcl **** : Zur Erstellung von Listen detaillierter Deklarationen (solche, die den eigentlichen Deklarationscode enthalten).
  • sdsc **** : Zur Erstellung von Listen, die verschiedene Syntaxen eines Sprachfeatures darstellen. Wird in Unterseiten von cpp/language verwendet.
  • par **** : Zur Erstellung von Listen, die Funktionsparameter erklären.
  • spar **** : Zur Erstellung von Listen, die Syntaxparameter erklären.
  • nv **** : Zur Erstellung von Feature-Listen in Navigationsleisten.
  • elink **** : Zur Erstellung von Listen mit externen Links.

[bearbeiten] Typografie-Hilfsvorlagen

[bearbeiten] [{{purge}}] Dokumentation

Dies ist eine der Vorlagen, die zur Ausgabe spezieller Symbole verwendet werden.

{{!}} - gibt aus|

{{!!}} - gibt aus||

{{=}} - gibt aus=

{{==}} - gibt aus==

{{!=}} - gibt aus|=

{{(!}} - gibt aus{|

{{!)}} - gibt aus|}

[bearbeiten] Formatierung

[bearbeiten] [{{purge}}] Dokumentation

Fügt dem umschlossenen Text Formatierung hinzu.

Verwendung Beschreibung Erzeugte HTML/MediaWiki-Elemente  Vorschau 
{{i|Text}} Text in kursiver normaler Schrift. <i>Text</i>{{sep}} Text 
{{tt|Text}} Text in Schreibmaschinenschrift. <code> Text
{{ttb|Text}} Text in fetter Schreibmaschinenschrift. <code><b> Text
{{tti|Text}} Text in kursiver Schreibmaschinenschrift. <code><i> Text
{{normal|Text}} Text in normaler Schriftstärke. ... font-weight: normal; ... Text
{{ttn|Text}} Text in Schreibmaschinenschrift normaler Stärke. {{normal|<code>Text</code>}} Text
{{ttni|Text}} Text in kursiver Schreibmaschinenschrift normaler Stärke. {{normal|<code><i>Text</i></code>}} Text
{{petty|Text}} kleinerer Text {{small| Text
{{small|Text}} kleiner Text ... font-size: 0.7em;
    line-height: 130%; ...
Text
{{smalltt|Text}} kleiner Text in Schreibmaschinenschrift. {{small|<code>Text</code>}} Text
{{sub|Text}} tiefgestellter Text in normaler Schrift. <sub> Text
{{sup|Text}} hochgestellter Text in normaler Schrift. <sup> Text
{{p|Text}} Text in einem neuen Absatz. <p>Text</p>

Text

[bearbeiten] Syntaxhervorhebung

[bearbeiten] [{{purge}}] Dokumentation

Dies sind Vorlagen, die zur Syntaxhervorhebung verwendet werden.


{{c|Code |lang=Sprache (optional)}}

Eine Basissvorlage, die dazu dient, Code inline hervorzuheben. lang ist optional; der von {{get lang}} zurückgegebene Wert wird standardmäßig verwendet. Wendet einen halbtransparenten dunklen Hintergrund an.
Beispiel: {{c|std::string(80, '_');}} ergibt std::string(80, '_');
Beispiel: {{c|1= auto x = std::array{1, 2, 3};}} ergibt auto x = std::array{1, 2, 3};
Beachten Sie, dass 1= erforderlich ist, wenn ein Gleichheitszeichen = irgendwo im Ausdruck vorhanden ist.
  • Für Code-Schnipsel in Bereichen (wie z. B. [beginend)) ist die {{range}}-Vorlagenfamilie zu bevorzugen.


{{c multi|Zeile1 |Zeile2 (optional)|... |Zeile8 (optional)|lang=Sprache (optional)}}

Ähnlich wie {{c}}, unterstützt mehrzeilige Code-Schnipsel (bis zu 8 Zeilen). lang ist optional; der von {{get lang}} zurückgegebene Wert wird standardmäßig verwendet. Die Codehervorhebung erstreckt sich nicht über Zeilen hinweg: Vermeiden Sie das Aufteilen von Zeichenkettenliteralen ("") und mehrzeiligen Kommentaren (/* */).
Beispiel (beachten Sie die Leerzeichen für den Abstand): {{c multi|std::max(std::numeric_limits<int>::max(),|         std::numeric_limits<int>::min())}}
oder (beachten Sie die praktische Einrückung)
{{c multi
|std::max(std::numeric_limits<int>::max(),
|         std::numeric_limits<int>::min())}}
ergibt
std::max(std::numeric_limits<int>::max(),
         std::numeric_limits<int>::min())
.
Beachten Sie, dass, wenn ein Gleichheitszeichen = in der entsprechenden Zeile vorhanden ist, die führenden |1=/|2=/|3=/.../|8= erforderlich sind, z. B. {{c multi
|1=std::any = 42;
|2=std::any = 3.14;}}
ergibt
std::any = 42;
std::any = 3.14;
.


{{cc multi|Zeile1 |Zeile2 (optional)|... |Zeile8 (optional)|lang=Sprache (optional)}}

Wie {{c multi}}, aber ohne Hintergrund (z. B. den Rahmen).
Beispiel (beachten Sie die Leerzeichen für den Abstand)
{{cc multi|std::max(std::numeric_limits<int>::max(),|         std::numeric_limits<int>::min())}}
or
{{cc multi|std::max(std::numeric_limits<int>::max(),|{{nbsp|9}}std::numeric_limits<int>::min())}}
oder (beachten Sie die praktische Einrückung)
{{cc multi
|std::max(std::numeric_limits<int>::max(),
|         std::numeric_limits<int>::min())}}
ergibt
std::max(std::numeric_limits<int>::max(),
         std::numeric_limits<int>::min()).


{{c/core|Code |lang=Sprache (optional)}}

Wie {{c}}, nur ohne Hintergrund (z. B. den Rahmen). Nur zur Verwendung in anderen Vorlagen bestimmt.
Beispiel: {{c/core|std::puts("C++");}} ergibt std::puts("C++");


{{co|Code |lang=Sprache (optional)}}

Wie {{c/core}}, nur ohne Hintergrund (z. B. den Rahmen). Beabsichtigt für Tabellen, bei denen die Rahmen vom Tabellenrahmen gesetzt werden.
Beispiel: {{co|std::basic_regex<char>}} ergibt std::basic_regex<char>


{{box|Tags }}

Ähnlich wie {{c}}, wendet einen gemeinsamen Rahmen auf formatierten Text an, der von mehreren gegebenen Tags erzeugt wird.
Beispiel: {{box|{{lc|std::pair}}{{tt|''<int, char>''()}}}} ergibt std::pair<int, char>()
Beispiel: {{ltt std|cpp/algorithm/swap}}{{tt|''<int>''}}{{c/core|(x, y);}}}} ergibt std::swap<int>(x, y);


{{box/core|Tags }}

Wie {{box}}, nur ohne Hintergrund (z. B. den Rahmen).
Beispiel
{{box/core|{{c/core|std::common_reference_t<ranges::range_reference_t<R1>,}}<br>{{nbspt|24}}{{c/core|ranges::range_reference_t<R2>>}}}}
ergibt
std::common_reference_t<ranges::range_reference_t<R1>,
                        ranges::range_reference_t<R2>>


{{cc|Code |lang=Sprache (optional)}}

Eine Basissvorlage, die dazu dient, größere Codeblöcke inline hervorzuheben. Normalerweise verwendet, wenn die {{c}}-Vorlage den Code nicht lesbar darstellt, aber {{source}} zu viel Platz verschwenden würde. lang ist optional; der von {{get lang}} zurückgegebene Wert wird standardmäßig verwendet.
Beispiel: {{cc|1= assert(std::hypot(3, 4) == 5);}} ergibt assert(std::hypot(3, 4) == 5);


{{source|Code |lang=Sprache (optional)}}

Eine Basissvorlage, die dazu dient, große Codeblöcke hervorzuheben. lang ist optional; der von {{get lang}} zurückgegebene Wert wird standardmäßig verwendet.
Zum Beispiel der Code
 
  {{source|1=
  int main()
  {
      __builtin_printf("Hello, C++\n");
  }
  }}
  
ergibt
int main()
{
    __builtin_printf("Hello, C++\n");
}


{{eq fun|code1 |code2 (optional)|... |code4 (optional)|lang=Sprache (optional)}}

Eine Basissvorlage zur Darstellung von Code-Schnipseln in den Abschnitten Mögliche Implementierung. Die Argumente code1, code2 usw. sind der Code für jede Version der beschriebenen Funktionenvorlage (z. B. die std::fill-Familie im folgenden Fall). Wenn überhaupt kein Code angegeben wird, ergibt die Vorlage {{todo}}. lang ist optional — der von {{get lang}} zurückgegebene Wert wird standardmäßig verwendet.
Zum Beispiel der Code
 
  {{eq fun
  | 1=
  template<class ForwardIt, class T>
  void fill(ForwardIt first, ForwardIt last, const T& value)
  {
      for (; first != last; ++first)
          *first = value;
  }
  | 2=
  template<class OutputIt, class Size, class T>
  OutputIt fill_n(OutputIt first, Size count, const T& value)
  {
      for (Size i = 0; i < count; i++)
          *first++ = value;
      return first;
  }
  }}

ergibt
Erste Version
template<class ForwardIt, class T>
void fill(ForwardIt first, ForwardIt last, const T& value)
{
    for (; first != last; ++first)
        *first = value;
}
Zweite Version
template<class OutputIt, class Size, class T>
OutputIt fill_n(OutputIt first, Size count, const T& value)
{
    for (Size i = 0; i < count; i++)
        *first++ = value;
    return first;
}


{{eq impl|code1 |code2 (optional)|... |code4 (optional)|title1 (optional)|... |title4 (optional)|lang=Sprache (optional)}}

Zusätzliche Parameter

{{eq impl|ver1=link1 |... |ver4=link4 (optional)}}

Wie {{eq fun}} mit zwei zusätzlichen Funktionen.
  • Ein Ersatz eines beliebigen Standardtitels durch einen benutzerdefinierten über optionale Parameter title1=Ihr Titel, ..., title4=Ihr Titel . Standardtitel sind die gleichen wie im vorgenannten Template {{eq fun}}, d.h. Erste Version, ..., Vierte Version.
  • Eine automatische Generierung eines internen Links "unter" dem Titeltext. Wenn verN angegeben ist, generiert dieses Template einen internen HTML-Link mit dem Zielnamen "Version Nummer". Zum Beispiel, wenn ver2=3 wird der interne Link "#Version 3" generiert. Diese Funktion arbeitet zusammen mit der Generierung interner Anker durch {{dcla}} und {{dcl rev multi}} , um Mögliche Implementierung-Codeabschnitte mit Deklarationen in Synopsis zu verknüpfen.


{{example|Beschreibung (optional)|lang=Sprache (optional)|std=Sprachstandard (optional)|code=angezeigter Code |p=true, wenn nichtdeterministisch (optional)|output=Beispielausgabe (optional)}}

Eine Basissvorlage zur Darstellung von Beispielen. Wenn code nicht vorhanden ist, ergibt die Vorlage {{todo}}. lang ist standardmäßig ein Wert, der von {{get lang}} zurückgegeben wird. output gibt die Ausgabe an, die vom Code angezeigt wird. Wenn die Ausgabe nicht deterministisch ist, sollte p auf true gesetzt werden, um dies anzuzeigen (dann wird "Mögliche Ausgabe:" anstelle von "Ausgabe:" angezeigt).
Die folgenden Sprachstandards sind verfügbar:
cxx98, cxx03, cxx11, cxx14, c89, c99, c11.
Zum Beispiel der Code
 
  {{example
  | Commenting string
  | code=
  int main()
  {
      __builtin_puts("Hello, C++");
  }
  | p=true
  | output=
  Hello, C++
  }}
  
ergibt

Kommentarzeichenkette

int main()
{
    __builtin_puts("Hello, C++");
}

Mögliche Ausgabe

Hello, C++

[bearbeiten] Links und Anker

[bearbeiten] [{{purge}}] Dokumentation

Dies sind Vorlagen, die zum Erstellen von HTML-Hyperlinks und HTML-Ankern verwendet werden.

[bearbeiten] Anker

{{anchor|1 |2 (optional)|3 (optional)|... (optional)|10 (optional)}} - erstellt einen oder mehrere (bis zu 10) HTML-Anker, auf die verwiesen werden kann.

[bearbeiten] Absolute Links

[bearbeiten] Normale Schrift

{{lt|Pfad |Titel (optional)}} - erstellt einen Link zu einer Seite über den absoluten Pfad. Der Standardtitel ist nur der letzte Teil des Pfads.

Beispiel: {{lt|cpp/language/statements}} ergibt den Link: statements.
Beispiel: {{lt|cpp/language/statements|Labeled statements}} ergibt den Link: Labeled statements.
Hinweis: Das vorherige Beispiel ist nur eine weitere Möglichkeit, denselben Link mit der Standardvorlage zu erstellen
[[cpp/language/statements|Labeled statements]], was ebenfalls zu Labeled statements führt.

{{ls|pfad#abschnitt }} - erstellt einen Link zu einem Abschnitt (Anker) auf einer Seite, die durch den absoluten Pfad angegeben ist. Der Abschnittstext wird auch als Titel verwendet. Um einen Link auf derselben Seite zu erstellen, sollte der Pfadteil leer sein.

Beispiel: {{ls|cpp/language/lambda#Syntax}} ergibt den Link: Syntax.
Um einen Link zu einem Abschnitt/Anker innerhalb der aktuellen Seite zu erstellen, sollte der Pfadteil weggelassen werden.
Beispiel: {{ls|#Relative links}} ergibt den Link: Relative links (d.h. ein Link zum Abschnitt auf dieser Seite).

{{lsd|Pfad#Abschnitt }} ("lsd" steht für "Link to Section De-capitalized") - fast dasselbe wie {{ls}}, außer dass es den ersten Buchstaben des angezeigten Abschnittsnamens de-kapitalisiert. Um einen Link auf derselben Seite zu erstellen, sollte der Pfadteil leer sein.

Beispiel: {{lsd|cpp/language/array#Arrays of unknown bound}} ergibt den Link: arrays of unknown bound.
Beispiel: {{lsd|#Relative links}} ergibt den Link: relative links (d.h. ein Link zum Abschnitt auf dieser Seite).

[bearbeiten] Schreibmaschinenschrift

{{ltt|Pfad |Titel (optional)}} - erstellt einen Link zu einer Seite über den absoluten Pfad. Der Standardtitel ist nur der letzte Teil des Pfads.

Beispiel: {{ltt|cpp/language/switch}} ergibt den Link: switch.
Beispiel: {{ltt|cpp/language/switch|switch(expr)}} ergibt den Link: switch(expr).

{{ltf|Pfad |Titel (optional)|args=Argumente (optional)}} - erstellt einen Link zu einer Seite über den absoluten Pfad. Der Standardtitel ist nur der letzte Teil des Pfads. Klammern, die Funktion anzeigen, werden angehängt und umschließen die optionalen Argumente.

Beispiel: {{ltf|cpp/error/terminate}} ergibt den Link: terminate().
Beispiel: {{ltf|cpp/error/terminate|std::terminate}} ergibt den Link: std::terminate().
Beispiel: {{ltf|cpp/error/set_terminate|std::set_terminate|args=nullptr}} ergibt den Link: std::set_terminate(nullptr).

{{ltp|Pfad |Titel (optional)|targs=Vorlagenargumente (optional)}} - erstellt einen Link zu einer Seite über den absoluten Pfad. Der Standardtitel ist nur der letzte Teil des Pfads. Winkelklammern, die Vorlage anzeigen, werden angehängt und umschließen die optionalen Vorlagenargumente.

Beispiel: {{ltp|cpp/container/vector}} ergibt den Link: vector<>.
Beispiel: {{ltp|cpp/container/vector|targs=int}} ergibt den Link: vector<int>.
Beispiel: {{ltp|cpp/container/vector|targs=std::size_t}} ergibt den Link: vector<std::size_t>.

{{ltpf|Pfad |Titel (optional)|targs=Vorlagenargumente (optional)|args=Argumente (optional)}} - erstellt einen Link zu einer Seite über den absoluten Pfad. Der Standardtitel ist nur der letzte Teil des Pfads. Winkelklammern, die Vorlage anzeigen, werden angehängt und umschließen die optionalen Vorlagenargumente. Danach werden Klammern, die Funktion anzeigen, angehängt, die die optionalen Argumente umschließen.

Beispiel: {{ltpf|cpp/container/vector/vector|targs=int|args=5}} ergibt den Link: vector<int>(5).
Beispiel: {{ltpf|cpp/locale/use_facet|targs=Facet|args=loc}} ergibt den Link: use_facet<Facet>(loc).

{{lst|pfad#abschnitt }} - erstellt einen Link zu einem Abschnitt (Anker) auf einer Seite, die durch den absoluten Pfad angegeben ist. Der Abschnittstext wird auch als Titel verwendet. Um einen Link auf derselben Seite zu erstellen, sollte der Pfadteil leer sein.

Beispiel: {{lst|cpp/ranges#maybe-const}} ergibt den Link: maybe-const.
Beispiel: {{lst|#top}} ergibt den Link: top.
Beispiel: {{lst|#top_}} ergibt den Link: top_ (beachten Sie, dass der nachgestellte Unterstrich des Links automatisch abgeschnitten wird).

{{l2tt|seite |titel1 (optional)|titel2 (optional)}} - erstellt einen Link zu einer Seite über den absoluten Pfad. Der Titel wird aus den beiden letzten Teilen des Pfads gebildet, wobei :: dazwischen eingefügt wird. Jeder dieser Teile kann durch titel1 und titel2 überschrieben werden.

Beispiel: {{l2tt|cpp/container/vector/size}} ergibt den Link: vector::size.
Beispiel: {{l2tt|cpp/container/vector/size|size() const}} ergibt den Link: vector::size() const.
Beispiel: {{l2tt|cpp/container/vector/size|size()|std::vector<T>}} ergibt den Link: std::vector<T>::size().

{{l2tf|seite |titel1 (optional)|titel2 (optional)|args=Argumente (optional)|suffix=Suffix (optional)}} - erstellt einen Link zu einer Seite über den absoluten Pfad. Der Titel wird aus den beiden letzten Teilen des Pfads gebildet, wobei :: dazwischen eingefügt wird. Jeder dieser Teile kann durch titel1 und titel2 überschrieben werden. Klammern, die Funktion anzeigen, werden angehängt, und gefolgt von dem optionalen Suffix.

Beispiel: {{l2tf|cpp/container/vector/size}} ergibt den Link: vector::size().
Beispiel: {{l2tf|cpp/container/vector/size|suffix=const}} ergibt den Link: vector::size() const.
Beispiel: {{l2tf|cpp/container/vector/size|size|std::vector<T>}} ergibt den Link: std::vector<T>::size().

[bearbeiten] Kursive Schreibmaschinenschrift

{{lti|Pfad |Titel (optional)}} - erstellt einen Link zu einer Seite über den absoluten Pfad. Der Standardtitel ist nur der letzte Teil des Pfads.

Beispiel: {{lti|cpp/concepts/boolean-testable}} ergibt den Link: boolean-testable.

{{ltpi|Pfad |Titel (optional)|targs=Vorlagenargumente (optional)}} - erstellt einen Link zu einer Seite über den absoluten Pfad. Der Standardtitel ist nur der letzte Teil des Pfads. Winkelklammern, die Vorlage anzeigen, werden angehängt und umschließen die optionalen Vorlagenargumente.

Beispiel: {{ltpi|cpp/concepts/boolean-testable}} ergibt den Link: boolean-testable <>.
Beispiel: {{ltpi|cpp/concepts/boolean-testable|targs=int}} ergibt den Link: boolean-testable <int>.

{{lsi|pfad#abschnitt }} - erstellt einen Link zu einem Abschnitt (Anker) auf einer Seite, die durch den absoluten Pfad angegeben ist. Der Abschnittstext wird auch als Titel verwendet. Um einen Link auf derselben Seite zu erstellen, sollte der Pfadteil leer sein.

Beispiel: {{lsi|cpp/ranges#maybe-const}} ergibt den Link: maybe-const.
Beispiel: {{lsi|#top}} ergibt den Link: top.
Beispiel: {{lsi|#top_}} ergibt den Link: top_ (beachten Sie, dass der nachgestellte Unterstrich des Links automatisch abgeschnitten wird).

[bearbeiten] Absolute Links mit Präfix std::

Die folgenden Hilfsvorlagen generieren Links, deren Titel mit std:: beginnen. Sie können an Stellen verwendet werden, an denen {{lc}} keine Verlinkung generiert. Alle Links erscheinen in Schreibmaschinenschrift.

{{ltt std|Pfad }} - Link zu einer Seite unter Verwendung eines absoluten Pfads. Der Titel ist std:: gefolgt vom letzten Teil des Pfads.

Beispiel: {{ltt std|cpp/container/mdspan}} ergibt den Link: std::mdspan.

{{ltf std|Pfad }} - Link zu einer Seite unter Verwendung eines absoluten Pfads. Der Titel ist std:: gefolgt vom letzten Teil des Pfads und Klammern, die eine Funktion anzeigen.

Beispiel: {{ltf std|cpp/io/print}} ergibt den Link: std::print().

{{l2tt std|Pfad }} - Link zu einer Seite unter Verwendung eines absoluten Pfads. Der Titel ist std:: gefolgt von den letzten beiden Teilen des Pfads, die mit :: verbunden sind.

Beispiel: {{l2tt std|cpp/utility/basic_stacktrace/current}} ergibt den Link: std::basic_stacktrace::current.

{{l2tf std|Pfad }} - Link zu einer Seite unter Verwendung eines absoluten Pfads. Der Titel ist std:: gefolgt von den letzten beiden Teilen des Pfads, die mit :: verbunden sind, und Klammern, die eine Funktion anzeigen.

Beispiel: {{l2tf std|cpp/utility/expected/value}} ergibt den Link: std::expected::value().

[bearbeiten] Relative Links

[bearbeiten] Normale Schrift

{{rl|Seite |Titel (optional)}} - Erstellt einen Link zu einer Seite relativ zu dieser Seite (d. h. zu einer Unterseite).

{{rlp|Seite |Titel (optional)}} - Erstellt einen Link zu einer Seite relativ zur übergeordneten Seite.

{{rlp|/ |Titel }} - Erstellt einen Link zur übergeordneten Seite.

{{rlps|Seite#Abschnitt }} - Erstellt einen Link zu einem Abschnitt (Anker) auf einer Seite relativ zur übergeordneten Seite. Der Titel des generierten Links ist der Abschnittsname.

{{rlpsd|Seite#Abschnitt }} - Erstellt einen Link zu einem Abschnitt (Anker) auf einer Seite relativ zur übergeordneten Seite. Der Titel des generierten Links ist der Abschnittsname mit dem ersten Buchstaben kleingeschrieben.

[bearbeiten] Schreibmaschinenschrift

{{rlt|Seite |Titel (optional)}} - Erstellt einen Link zu einer Seite relativ zu dieser Seite (d. h. zu einer Unterseite).

{{rlpt|Seite |Titel (optional)}} - Erstellt einen Link zu einer Seite relativ zur übergeordneten Seite.

{{rlpt|/ |Titel }} - Erstellt einen Link zur übergeordneten Seite.

{{rlpf|Seite |Titel (optional)|args=Argumente (optional)}} - Erstellt einen Link zu einer Seite relativ zur übergeordneten Seite. Klammern, die eine Funktion anzeigen, werden angehängt und umschließen die optionalen Argumente.

{{rlpst|Seite#Abschnitt }} - Erstellt einen Link zu einem Abschnitt (Anker) auf einer Seite relativ zur übergeordneten Seite. Der Titel des generierten Links ist der Abschnittsname.

{{ttt|Identifikator }} - Erstellt einen Link zur aktuellen Seite (über den #top-Link).

Beispiel: {{ttt|dieseseite}} ergibt dieseseite.

[bearbeiten] Kursive Schreibmaschinenschrift

{{rli|Seite |Titel (optional)}} - Erstellt einen Link zu einer Seite relativ zu dieser Seite (d. h. zu einer Unterseite).

{{rlpi|Seite |Titel (optional)}} - Erstellt einen Link zu einer Seite relativ zur übergeordneten Seite.

{{rlpi|/ |Titel }} - Erstellt einen Link zur übergeordneten Seite.

{{rlpsi|Seite#Abschnitt }} - Erstellt einen Link zu einem Abschnitt (Anker) auf einer Seite relativ zur übergeordneten Seite. Der Titel des generierten Links ist der Abschnittsname.

[bearbeiten] Dekorierte Links

{{attr|Attribut |Titel (optional)|Zusatztitel (optional)|lang=Sprache (optional)}}

Wird verwendet, um einen Link zur Beschreibung von Attributspezifizierern in der C/C++-Sprache zu erstellen. Parameter
  • Attribut - ein Name für den Attributspezifizierer.
  • Titel - ein Titel für den Attributspezifizierer.
  • Zusatztitel - zusätzliche Elemente nach dem Titel.
  • Sprache - cpp oder c. Wenn Sprache nicht angegeben ist, wird {{get lang}} verwendet.
Beispiel: {{attr|assume}} ergibt [[assume]].
Beispiel: {{attr|noreturn|_Noreturn|lang=c}} ergibt [[_Noreturn]].
Beispiel: {{attr|deprecated|3=("warum")}} ergibt [[deprecated("warum")]].

[bearbeiten] Links und Informationen zur Standardisierung

[bearbeiten] [{{purge}}] Dokumentation

[bearbeiten] WG21

Generiert einen Link zu einem Dokument der C++ Working Group (WG21), d. h. zu einer CWG/LWG-Seite oder einer "Proposal"-Datei.

{{wg21|CWG- oder LWG- oder WG21-Dokumentennummer |full (optional)}}

Das Argument full (optional) funktioniert nur mit "Proposal"-Dokumenten. Die Anwendung erzeugt einen zusätzlichen Link zur GitHub-Seite (wo das Proposal von WG21 bearbeitet wird).

[bearbeiten] stddoc

Wird verwendet, um einen Link zu einem Dokument von WG14/WG21 zu generieren.

Die Arbeitsgruppe/Sprache (C oder C++) wird durch {{get lang}} bestimmt, es sei denn, das Argument lang (optional) mit dem Wert c oder cpp wird bereitgestellt (sofern unterstützt).

{{stddoc|Dokumentennummer |Link-Titel (optional)|lang=Sprache (optional)}}

Generiert einen Link zu einem WG14/WG21-Dokument mit der angegebenen Dokumentennummer. Ein benutzerdefinierter Link-Titel kann angegeben werden; standardmäßig ist dies die großgeschriebene Dokumentennummer. Im C-Modus kann die Dokumentennummer eine Dateiendung enthalten, z. B. n2081.htm. Im C++-Modus ist es aufgrund der Automatisierung des wg21.link-Dienstes nicht notwendig, die Endung zu kennen/anzugeben.
  • Beispiel: {{stddoc|p2443r1}} ergibt: P2443R1
  • Beispiel: {{stddoc|P2443R1|views::chunk_by}} ergibt: views::chunk_by
  • Beispiel: {{stddoc|n2731|C23 draft|lang=c}} ergibt: C23 draft
  • Beispiel: {{stddoc|n2081.htm|n2081|lang=c}} ergibt: n2081

{{stddoc latest draft|Link-Titel (optional)|lang=Sprache (optional)}}

Generiert einen Link zum neuesten Entwurf des nächsten C/C++-Standards.
  • Derzeit ergibt {{stddoc latest draft}}: N5001
  • Derzeit ergibt {{stddoc latest draft|Latest C++ draft}}: Latest C++ draft
  • Derzeit ergibt {{stddoc latest draft|Latest C draft|lang=c}}: Latest C draft

[bearbeiten] stddocs

{{stddocs|Dokumentenliste |input-separator=Leerzeichen (optional)|output-separator=Zeilenumbruch (optional)}}

  • Eine Hilfsvorlage, die verwendet wird, um eine Liste von Links zu WG14/WG21-Dokumenten zu generieren, indem jedes Element der Eingabeliste in die {{stddoc}}-Vorlage eingebettet wird.
  • docs-list — 1. positioneller Parameter, eine Eingabedokumentenliste. Wenn das zweite Argument nicht bereitgestellt wird, müssen die Elemente der Eingabeliste durch Leerzeichen getrennt sein, z. B. {{stddocs|P0202R3 P0879R0 LWG3256 LWG3792}}. Wenn das dritte Argument nicht bereitgestellt wird, werden die Ausgabelinks durch <br> getrennt.
  • input-separator — 2. positioneller Parameter. Wenn bereitgestellt, definiert er den Eingabelistentrenner.
  • output-separator — 3. positioneller Parameter. Wenn bereitgestellt, definiert er den Ausgabelistentrenner.
  • Limits: Bis zu 8 Elemente in der Eingabeliste werden unterstützt.
  • Beispiel: {{stddocs|P0202R3 P0879R0 LWG3256 LWG3792}} ergibt
P0202R3
P0879R0
LWG3256
LWG3792
  • Beispiel: {{stddocs|P0202R3, P0879R0, LWG3256, LWG3792|,}} ergibt
P0202R3
P0879R0
LWG3256
LWG3792
  • Beispiel: {{stddocs|P0202R3/P0879R0/LWG3256/LWG3792|/|—}} ergibt
P0202R3P0879R0LWG3256LWG3792

[bearbeiten] stdinfo

Wird verwendet, um Informationen zur C/C++-Standardisierung bereitzustellen.

Die Sprache (C oder C++) wird durch {{get lang}} bestimmt, es sei denn, das Argument lang (optional) mit dem Wert c oder cpp wird bereitgestellt (sofern unterstützt).

{{stdinfo latest draft|rev oder doc oder datum |lang=Sprache (optional)}}

Ist eine Drehscheibe für Informationen zu C/C++-Standardentwürfen. Abhängig vom Wert des ersten Arguments ist die zurückgegebene Info
value Info Beispiel
Revisionsnummer Versionsnummer {{stdinfo latest draft|rev}} ergibt 26

{{stdinfo latest draft|rev|lang=c}} ergibt 2y

Dokumentennummer Dokumentennummer {{stdinfo latest draft|doc}} ergibt n5001

{{stdinfo latest draft|doc|lang=c}} ergibt n3467

Datum Dokumentendatum {{stdinfo latest draft|date}} ergibt 2024-12-17

{{stdinfo latest draft|date|lang=c}} ergibt 2025-02-09

Wird innerhalb der folgenden höherrangigen Vorlagen verwendet
{{stdinfo latest draft docnum}}, {{stdinfo latest draft docdate}}, {{stdinfo next version number}}, {{stdinfo next version}}.

{{stdinfo latest draft docnum|lang=Sprache (optional)}}

Die Dokumentennummer des neuesten Entwurfs des C/C++-Standards.
  • Für C ergibt n3467.
  • Für C++ ergibt n5001.

{{stdinfo latest draft docdate|lang=Sprache (optional)}}

Das Dokumentendatum des neuesten Entwurfs des C/C++-Standards.
  • Für C ergibt 2025-02-09.
  • Für C++ ergibt 2024-12-17.

{{stdinfo next version number|lang=Sprache (optional)}}

Die Versionsnummer des nächsten C/C++-Standards.
  • Für C ergibt 2y.
  • Für C++ ergibt 26.

{{stdinfo next version}}

Die Version des nächsten C/C++-Standards (mit dem Präfix C oder C++). Ergibt: C++

{{stdinfo current version number}}

Die Versionsnummer des aktuellen C/C++-Standards. Ergibt: 20

{{stdinfo current version}}

Die Version des aktuellen C/C++-Standards (mit dem Präfix C oder C++). Ergibt: C++20

[bearbeiten] Aktuelle Sprache

Gibt die Programmiersprache zurück, die standardmäßig für eine Seite verwendet werden soll. Der Ausgabewert hängt vom Titel der Seite ab, auf der diese Vorlage enthalten ist.

{{get lang}}

Wenn der Seitentitel mit "c/" beginnt, ist der Ausgabewert "c". Wenn der Seitentitel mit "cpp/" beginnt, ist der Ausgabewert "cpp". Andernfalls ist der Ausgabewert "cpp".

{{get lang formal}}

Wenn der Seitentitel mit "c/" beginnt, ist der Ausgabewert "C". Wenn der Seitentitel mit "cpp/" beginnt, ist der Ausgabewert "C++". Andernfalls ist der Ausgabewert "C++".

[bearbeiten] POSIX

{{posix|Seite (optional)|Mono-Titel (optional)|beliebiger Titel (optional)}}

Generiert einen Link zu den POSIX-Funktionsdokumentationsseiten. Diese Vorlage verwendet intern {{posix/core}} (siehe unten).
  • Wenn keine Argumente bereitgestellt werden, wird der Link zur Dokumentationswurzel mit der POSIX-Version als Titel generiert.
  • Seite - der Seitenname ohne die .html-Endung (diese wird angehängt). Wenn keine anderen Argumente bereitgestellt werden, wird sie auch als Titel in Monoschrifttyp verwendet.
  • Mono-Titel - wenn bereitgestellt, wird er als Titel in Monoschrifttyp verwendet.
  • beliebiger Titel - wenn bereitgestellt, wird er wie angegeben für den Titel verwendet. Dieses Argument hat Vorrang vor Mono-Titel, d. h. wenn es bereitgestellt wird, wird Mono-Titel ignoriert.
[bearbeiten] Beispiele

{{posix/core|Link-Teil und Titel (optional)}}

Generiert einen Link zu den POSIX-Dokumentationsseiten, wenn ein "stabiler" Teil des Links bereitgestellt wird.
Diese Vorlage sollte aktualisiert werden, wann immer sich die POSIX-Version und der Stamm-Link zu ihren Dokumentationsseiten ändern.
  • Wenn kein Argument bereitgestellt wird, wird der Link zur Dokumentationswurzel mit der POSIX-Version als Titel generiert, d. h. {{posix/core}} ergibt POSIX.1-2024/IEEE Std 1003.1-2024.
  • Andernfalls sollte das Argument ein "stabiler" Teil gefolgt vom Titel sein, z. B.
{{posix/core|basedefs/V1_chap04.html#tag_04_16 die Epoche}} ergibt die Epoche.

[bearbeiten] Annotationen

[bearbeiten] {{mark}} Familie von Vorlagen

[bearbeiten] [{{purge}}] Dokumentation

Erstellt eine Annotation.

Allgemein

{{mark|Text |class=Klassen (optional)}} - Erstellt eine Annotation, die den angegebenen Text enthält. Zusätzliche Klassen können für das Styling angegeben werden.

Beispiel: {{mark|text}} ergibt (text).

{{mark rev|Text |class=Klassen (optional)}} - Erstellt eine Annotation, die den angegebenen Text enthält. Zusätzliche Klassen können für das Styling angegeben werden.

Beispiel: {{mark rev|seit C++1998}} ergibt (seit C++1998).

{{mark tooltip|Text |Tooltip |class=Klassen (optional)}} - Erstellt eine Annotation, die den angegebenen Text mit Tooltip enthält. Zusätzliche Klassen können für das Styling angegeben werden.

Beispiel: {{mark tooltip|99% vollständig|XXX nicht unterstützt}} ergibt (99% vollständig*).
Sonstiges
Template Annotation
{{mark attribute}} (Attributspezifizierer)
{{mark deprecated}} (veraltet)
{{mark optional}} (optional)
{{mark cond present}} (bedingt vorhanden)
{{mark implicit}} (implizit deklariert)
{{mark concept}} spezifiziert, dass ein Metaobjekttyp ein Metaobjektsequenztyp ist
{{mark expos}} (nur Exposition*)
{{mark expos concept}} (nur zur Veranschaulichung definierter Konzept*)
{{mark tag}} (Tag)
{{mark expos mem type}} ((nur zur Veranschaulichung)*)
{{mark named req}} (benannte Anforderung)
{{mark typedef}} (typedef)
{{mark type alias}} (Typalias)
{{mark enum}} (Enum)
{{mark mem enum}} (public member enum)
{{mark keyword}} (Schlüsselwort)
{{mark macro keyword}} (Keyword-Makro)
{{mark preprocessing directive}} (Präprozessor-Direktive)
{{mark macro opr}} (Operator-Makro)
{{mark language}} (Sprache)
C++ Standards
Template Annotation
{{mark deprecated c++98}} (veraltet in C++98)
{{mark c++03}} (C++03)
{{mark since c++03}} (seit C++03)
{{mark until c++03}} (bis C++03)
{{mark c++11}} (C++11)
{{mark since c++11}} (seit C++11)
{{mark constexpr since c++11}} (constexpr seit C++11)
{{mark noexcept since c++11}} (noexcept seit C++11)
{{mark deprecated c++11}} (in C++11 veraltet)
{{mark until c++11}} (bis C++11)
{{mark c++14}} (C++14)
{{mark since c++14}} (seit C++14)
{{mark constexpr since c++14}} (constexpr seit C++14)
{{mark noexcept since c++14}} (noexcept seit C++14)
{{mark deprecated c++14}} (in C++14 veraltet)
{{mark until c++14}} (bis C++14)
{{mark c++17}} (C++17)
{{mark since c++17}} (seit C++17)
{{mark constexpr since c++17}} (constexpr seit C++17)
{{mark noexcept since c++17}} (noexcept seit C++17)
{{mark deprecated c++17}} (veraltet in C++17)
{{mark until c++17}} (bis C++17)
{{mark c++20}} (C++20)
{{mark since c++20}} (seit C++20)
{{mark constexpr since c++20}} (constexpr seit C++20)
{{mark noexcept since c++20}} (noexcept seit C++20)
{{mark deprecated c++20}} (veraltet in C++20)
{{mark until c++20}} (bis C++20)
{{mark c++23}} (C++23)
{{mark since c++23}} (seit C++23)
{{mark constexpr since c++23}} (constexpr seit C++23)
{{mark noexcept since c++23}} (noexcept seit C++23)
{{mark deprecated c++23}} (veraltet in C++23)
{{mark updated c++23}} (aktualisiert in C++23)
{{mark until c++23}} (bis C++23)
{{mark c++26}} (C++26)
{{mark since c++26}} (seit C++26)
{{mark constexpr since c++26}} (constexpr seit C++26)
{{mark noexcept since c++26}} (noexcept seit C++26)
{{mark deprecated c++26}} (veraltet in C++26)
{{mark updated c++26}} (aktualisiert in C++26)
{{mark until c++26}} (bis C++26)
C Standards
Template Annotation
{{mark c95}} (C95)
{{mark since c95}} (seit C95)
{{mark until c95}} (bis C95)
{{mark c99}} (C99)
{{mark since c99}} (seit C99)
{{mark until c99}} (bis C99)
{{mark c11}} (C11)
{{mark since c11}} (seit C11)
{{mark until c11}} (bis C11)
{{mark c17}} (C17)
{{mark since c17}} (seit C17)
{{mark deprecated c17}} (in C17 veraltet)
{{mark until c17}} (bis C17)
{{mark c23}} (C23)
{{mark since c23}} (seit C23)
{{mark deprecated c23}} (in C23 veraltet)
{{mark until c23}} (bis C23)
{{mark since none}} (seit {std})
{{mark until none}} (bis {std})
Kombinationen

{{mark life|appear=c++xx (optional)|since=c++xx (optional)|deprecated=c++xx (optional)|until=c++xx (optional)|removed=c++xx (optional)|br=yes (optional)}}

Beispiel: {{mark life|since=c++11|deprecated=c++17|removed=c++20}} ergibt
(seit C++11)(in C++17 veraltet)(entfernt in C++20)
Beispiel: {{mark life|appear=c++11|until=c++20}} ergibt (C++11)(bis C++20)
  • Der optionale Parameter br kann auf yes gesetzt werden, um jede Annotation in einer separaten Zeile anzuzeigen, z. B.
Beispiel: {{mark life|since=c++11|deprecated=c++17|removed=c++20|br=yes}} ergibt
(seit C++11)
(veraltet in C++17)
(in C++20 entfernt)


Technische Spezifikationen
Template Annotation
{{mark since libfund ts}} (library fundamentals TS)
{{mark since libfund ts 2}} (Library Fundamentals TS v2)
{{mark since libfund ts 3}} (library fundamentals TS v3)
{{mark since fs ts}} (Dateisystem-TS)
{{mark since parallelism ts}} (parallelism TS)
{{mark since parallelism ts 2}} (Parallelismus TS v2)
{{mark since concepts ts}} (Konzepte-TS)
{{mark since concurrency ts}} (Concurrency TS)
{{mark since concurrency ts 2}} (Concurrency TS v2)
{{mark since tm ts}} (TM TS)
{{mark since special functions tr}} (Special Functions TR)
{{mark since modules ts}} (Module TS)
{{mark since coro ts}} (Coroutinen TS)
{{mark since reflection ts}} Ein Wert von mindestens 201902 zeigt an, dass die Reflection TS unterstützt wird.
Funktionen
Template Annotation
{{mark fun}} (Funktion)
{{mark expos fun}} (nur zur Veranschaulichung definierte Funktion*)
{{mark tfun}} (function template)
{{mark expos tfun}} (nur zur Veranschaulichung definierte Funktion-Schablone*)
{{mark mem fun}} (öffentliche Memberfunktion)
{{mark mem sfun}} (öffentliche statische Memberfunktion)
{{mark mem vfun}} (virtuelle öffentliche Memberfunktion)
{{mark priv mem fun}} (private member function)
{{mark prot mem fun}} (geschützte Memberfunktion)
{{mark prot mem vfun}} (virtuelle geschützte Memberfunktion)
{{mark_expos_mem_fun}} (exposition-only Member-Funktion*)
{{mark_expos_mem_sfun}} (nur zur Veranschaulichung definierte statische Memberfunktion*)
{{mark_macro_fun}} (Funktionsmakro)
{{mark_macro_tfun}} (generische Funktionsmakro)
Klassen
Template Annotation
{{mark_class}} (Klasse)
{{mark_tclass}} (Klassentemplate)
{{mark_talias}} (Alias-Template)
{{mark_ptclass}} (Klassentemplate-Spezialisierung)
{{mark_mem_class}} (public member class)
{{mark_priv_mem_class}} (private Memberklasse)
{{mark_prot_mem_class}} (protected Memberklasse)
{{mark_mem_tclass}} (öffentliche Member-Klassenvorlage)
{{mark_priv_mem_tclass}} (private Member-Klassenvorlage)
{{mark_expos_mem_class}} ((nur zur Veranschaulichung)*)
{{mark_expos_mem_tclass}} ((nur zur Veranschaulichung Exposition-only Member-Klassenschablone)*)
{{mark_priv_ntclass}} (private verschachtelte Klassenvorlage)
Konstanten
Template Annotation
{{mark_macro_const}} (Makro-Konstante)
{{mark_const}} (Konstante)
{{mark_mem_const}} (öffentliche Memberkonstante)
{{mark_mem_sconst}} (öffentliche statische Member-Konstante)
{{mark_expos_mem_sconst}} ((exposition-only static member constant*)
Objekte
Template Annotation
{{mark_mem_obj}} (öffentliches Mitgliedsobjekt)
{{mark_priv_mem_obj}} (private Memberobjekt)
{{mark_prot_mem_obj}} (geschütztes Member-Objekt)
{{mark_expos_mem_obj}} ((exposition-only member object*)
{{mark_expos_mem_var}} (nur zur Veranschaulichung definierte Variante eines Memberobjekts*)
{{mark_custpt}} (Customization-Point-Objekt)
{{mark_rao}} (Range-Adaptor-Objekt)
{{mark_niebloid}} (Algorithmus-Funktionsobjekt)


Container-Markierungen unterstützen

{{cpp/container/mark_std|container}} - gibt (C++11), (C++20), (C++23) usw. aus, je nach Revision des angegebenen Standards container. Die Ausgabe ist leer für Container vor C++11.

[bearbeiten] Beispiel
  • {{cpp/container/mark std|vector}} ergibt (nichts)
  • {{cpp/container/mark std|array}} ergibt (C++11)
  • {{cpp/container/mark std|unordered_set}} ergibt (C++11)
  • {{cpp/container/mark std|span}} ergibt (C++20)
  • {{cpp/container/mark std|flat_set}} ergibt (C++23)

[bearbeiten] {{cmark}} Familie von Vorlagen

[bearbeiten] [{{purge}}] Dokumentation

Erstellt eine Anmerkung für eine Funktion. Mehrere Anmerkungen sind bereits definiert

{{cmark_virtual}} ergibt [virtual]

{{cmark_static}} ergibt [static]

{{cmark_deleted}} ergibt [deleted]

[bearbeiten] Versionierung

[bearbeiten] [{{purge}}] Dokumentation

Wird verwendet, um zu deklarieren, dass bestimmte Teile der Beschreibung nur für spezifische Revisionen des Standards gültig sind.

{{rev_begin|noborder=true_if_noborder (optional)}}

Beginnt die Menge von Textfragmenten, die für eine oder mehrere spezifische Revisionen des Standards gelten. Wenn der Parameter noborder den Wert true hat, wird die Tabelle ohne Rahmen und mit minimalem Abstand angezeigt.

{{rev|since=since-std (optional)|until=until-std (optional)|text }}

Gibt an, dass text nur für Standardrevisionen seit since-std bis until-std (until-std ist nicht inklusive) gültig ist.

{{rev_end}}

Beendet die Menge von Textfragmenten, die für eine oder mehrere spezifische Revisionen des Standards gelten.

{{rrev|noborder=true_if_noborder (optional)|since=since-std (optional)|until=until-std (optional)|text }}

Eine kombinierte Vorlage {{rev_begin}}/{{rev}}/{{rev_end}}, für Fälle, in denen nur ein einzelnes {{rev}} benötigt wird.

{{rrev_multi|noborder=true_if_noborder (optional)|sinceX=since-std (optional)|untilX=until-std (optional)|revX=text |... }}

Eine kombinierte Vorlage {{rev_begin}}/{{rev}}/{{rev_end}}. Bis zu 7 Fragmente werden unterstützt. Der Standardwert für sinceX ist untilX-1 und der Standardwert für untilX ist sinceX+1. Daher ist sie am nützlichsten, wenn die Fragmente relativ kurz und die Revisionsbereiche aufeinanderfolgend sind. Diese Vorlage kann substituiert werden.

{{rev_inl|id=id (optional)|since=since-std (optional)|until=until-std (optional)|noborder=true_if_noborder (optional)|text }}

Gleich wie {{rev}}, wird aber inline angezeigt. {{rev_begin}} und {{rev_end}} dürfen nicht verwendet werden. Der Text kann mit id referenziert werden.

Der Rahmen wird weggelassen, wenn der Parameter noborder den Wert true hat.

[bearbeiten] Feature-Test-Makros Darstellung

[bearbeiten] [{{purge}}] Dokumentation

[bearbeiten] Feature-Test-Makro Unterstützung

Wird verwendet, um Links und Tabellen zu generieren, die gegebene Feature-Test-Makros beschreiben.

[bearbeiten] Einzeilige Form

{{feature_test_macro|feature-test-macro-name |feature |value=date |std=C++XY |dr=yes or NN (optional)}}

Beispiel

{{feature_test_macro|__cpp_lib_string_view|{{lc|std::string_view}}|value=201606L|std=C++17}}
ergibt
Feature-Test-Makro Wert Std Feature
__cpp_lib_string_view 201606L (C++17) std::string_view

Beispiel

{{feature_test_macro|__cpp_inheriting_constructors|Rewording|value=201511L|std=C++11|dr=98}}
ergibt
Feature-Testmakro Wert Std Feature
__cpp_inheriting_constructors 201511L (C++11)
(DR98)
Rewording

[bearbeiten] Mehrzeilige Form

Wenn es mehr als ein Feature-Test-Makro auf einer Seite gibt, sollten diese in einer Tabelle mit den folgenden Vorlagen kombiniert werden

{{ftm_begin|params (optional)}}

{{ftm|params }}

...

{{ftm_end}}

[bearbeiten] Syntax

{{ftm_begin|core=yes (optional)|sort=yes (optional)}}

Bestimmt die Eigenschaften der Tabelle.

  • Wenn der benannte Parameter core vorhanden ist, wird kein Link (in der Tabellenüberschrift) zur Seite über Bibliotheksfeatures generiert.
  • Wenn der benannte Parameter sort vorhanden ist, wird die Tabelle eine "sortierbare" Wiki-Tabelle sein.

Hinweis: Zuvor wurden zwei zusätzliche (optionale) Parameter unterstützt: std und comment (beide werden jetzt ignoriert), die verwendet wurden, um Spalten bedingt hinzuzufügen/auszublenden. Die Spalten Std, Value und Feature sind immer vorhanden.


{{ftm|cpp-macro |feature |value=value |std=C++XX |rowspan=R (optional)|dr=yes or XZ (optional)}}

  • cpp-macro liefert den Namen des Feature-Test-Makros, z. B. __cpp_lib_constexpr
  • feature liefert die Feature-Beschreibung
  • value liefert den Wert des Feature-Test-Makros (ein Datum), z. B. 202202L
  • std liefert den Revisions-String, z. B. (C++23)
  • rowspan ist ein optionaler Parameter (z. B. rowspan="3"), der die gleiche Bedeutung hat wie in Standard-Wiki-Tabellen, d. h., wenn er angegeben wird, führt er zu einer vertikalen Zusammenführung von R aufeinanderfolgenden Zellen (in der Spalte Feature-Test-Makro) zu einer einzigen, mit einem einzelnen Feature-Test-Makro-Namen darin. Die folgenden {{ftm}}s mit - Zeichen anstelle des Makronamens sollten verwendet werden.
  • dr fügt, wenn mit dem Argument "yes" angegeben, ein (DR)-Zeichen unter der C++-Revision hinzu.
  • dr fügt, wenn mit einem anderen Argument als "yes" angegeben, z. B. der Revisionsnummer 98, ein (DR98)-Zeichen unter der C++-Revision hinzu.

[bearbeiten] Beispiel

Die Sequenz

{{ftm begin|sort=yes}}
{{ftm|std=C++23|value=202207L|__cpp_lib_find_last|comment #1}}
{{ftm|std=C++23|value=202207L|__cpp_lib_fold|comment #2}}
{{ftm|std=C++20|value=201911L|__cpp_lib_ranges|rowspan="4"|comment #3}}
{{ftm|std=C++20|value=202106L|-|comment #4}}
{{ftm|std=C++20|value=202110L|-|comment #5|dr=yes}}
{{ftm|std=C++23|value=202202L|-|comment #6|dr=20}}
{{ftm|std=C++23|value=202207L|__cpp_lib_ranges_contains|comment #7}}
{{ftm|std=C++23|value=202202L|__cpp_lib_ranges_iota|comment #8}}
{{ftm|std=C++23|value=202106L|__cpp_lib_ranges_starts_ends_with|comment #9}}
{{ftm|std=C++20|value=201806L|__cpp_lib_shift|rowspan="2"|comment #10}}
{{ftm|std=C++23|value=202202L|-|comment #11}}
{{ftm end}}

ergibt

Feature-Test-Makro Wert Std Feature
__cpp_lib_find_last 202207L (C++23) comment #1
__cpp_lib_fold 202207L (C++23) comment #2
__cpp_lib_ranges 201911L (C++20) comment #3
202106L (C++20) comment #4
202110L (C++20)
(DR)
comment #5
202202L (C++23)
(DR20)
comment #6
__cpp_lib_ranges_contains 202207L (C++23) comment #7
__cpp_lib_ranges_iota 202202L (C++23) comment #8
__cpp_lib_ranges_starts_ends_with 202106L (C++23) comment #9
__cpp_lib_shift 201806L (C++20) comment #10
202202L (C++23) comment #11

[bearbeiten] Inline-Formen

{{ftm_link|feature-test-macro-name }}

Erzeugt einen einfachen Link zu den cpp/feature test-Tabellen.

  • feature-test-macro-name - ein FTM-Name, z. B. __cpp_constexpr oder __cpp_lib_ratio

Beispiel


{{ftml|feature-test-macro-name |since-rev (optional)|updated-in-rev-list (optional)}}

Erzeugt einen einfachen Link mit Revisionsmarkierungen, der für Seiten wie den Makro-Symbolindex bestimmt ist.

  • feature-test-macro-name - ein FTM-Name, z. B. __cpp_constexpr oder __cpp_lib_ratio
  • since-rev - C++-Revision in der Form C++20
  • update-in-rev-list - Liste von Revisionen, in denen Updates stattgefunden haben, in der Form C++17, C++20

[bearbeiten] Beispiele

  • {{ftml|__cpp_constexpr}} ergibt __cpp_constexpr
  • {{ftml|__cpp_constexpr|C++11}} ergibt __cpp_constexpr (seit C++11)
  • {{ftml|__cpp_lib_format|C++20|C++23}} ergibt __cpp_lib_format (seit C++20)(aktualisiert in C++23)
  • {{ftml|__cpp_lib_format|C++20|C++23, C++26}} ergibt __cpp_lib_format (seit C++20)(aktualisiert in C++23, C++26)

[bearbeiten] Navigationsleisten

[bearbeiten] [{{purge}}] Dokumentation
{{navbar
| style =

| heading1 = 
| content1 = 

| heading2 = 
| content2 = 

| heading3 = 
| content3 = 

...

| heading8 = 
| content8 = 

}}

[bearbeiten] Sonstiges

[bearbeiten] Leerzeichen

[bearbeiten] [{{purge}}] Dokumentation

[bearbeiten] Umgang mit Leerzeichen

{{space|number}} - gibt number Leerzeichen aus. Beachten Sie, dass führende/nachfolgende Leerzeichen durch {{trim}} getrimmt werden können, im Gegensatz zu "Leerzeichen" aus der {{nbsp}}/{{nbspt}}-Familie.

{{space_as|text}} - gibt so viele Leerzeichen aus, wie Zeichen in text vorhanden sind. Nützlich für die Einrückung von vorlagenbasiertem Code.

{{trim|text}} - trimmt führende und nachfolgende Leerzeichen

{{sep}} - fügt ein winziges nichtbrechendes Leerzeichen zwischen Zeichen ein, um Überlappungen z. B. von kursiven Zeichen zu vermeiden. Beispiel: II vs I I.

{{nbsp|number (optional)}} - fügt number nichtbrechende Leerzeichen ein (HTML: &nbsp;). Ohne Argument wird ein solches Leerzeichen eingefügt. Diese "Leerzeichen" (in führender/nachfolgender Position) werden nicht von {{trim}} getrimmt.

{{nbspt|number (optional)}} - generiert die gleichen Leerzeichen wie {{nbsp}}, aber in Monospace-Schrift (Teletype). Diese "Leerzeichen" werden nicht von {{trim}} getrimmt.

{{void}} - fügt quasi ein leeres Leerzeichen ein, das notwendig sein könnte, um die HTML-Generierung zu verhindern, wenn der Wiki-Media-Prozessor handeln soll. Ein Beispiel ist foo<Ref>, bei dem der Teil <Ref> eine HTML-Engine veranlasst, eine Referenzliste zu generieren. Um dies zu unterdrücken, könnte dieser Code als {{c|foo<{{void}}Ref>}} geschrieben werden.

{{br}} - verhält sich ähnlich wie das HTML-Tag <br>, außer dass der Umbruch nur erfolgt, wenn die Zeichenkette nicht als eine Zeile in einen umschließenden Kasten passt. Nützlich in Tabellen, um lange Bezeichner optional aufzuteilen.

Beispiel. Sei der Bezeichner __cpp_lib_allocator_traits_is_always_equal markiert als

{{tt|__cpp_lib_allocator_}}{{br}}{{tt|traits_is_always_equal}}.

Dann kann das Rendern der darin enthaltenen Boxen ergeben

__cpp_lib_allocator_traits_is_always_equal
__cpp_lib_allocator_traits_is_always_equal

[bearbeiten] Kopfzeilen

[bearbeiten] [{{purge}}] Dokumentation

Wird verwendet, um einen Link zu einer C- oder C++-Header-Beschreibungsseite zu erstellen.

{{header|name|lang=cpp oder c (optional)}}, wobei name ein Headername ist (ohne spitze Klammern).

Auf C++-Seiten ergibt {{header|iostream}} <iostream>
Auf C-Seiten ergibt {{header|stdio.h}} <stdio.h>

[bearbeiten] Hilfsvorlagen (nur für andere Vorlagen bestimmt)

[bearbeiten] Typumwandlungsanforderungen

[bearbeiten] [{{purge}}] Dokumentation

Dies ist eine der Vorlagen, die verwendet werden, um anzugeben, dass ein Typ in einen anderen konvertiert werden muss. Alle diese Vorlagen können entweder die Anforderung ausgeben, dass ein Objekt eines bestimmten Typs in einen anderen Typ konvertiert werden kann, oder dass ein Objekt eines bestimmten Typs dereferenziert und dann in einen anderen Typ konvertiert werden kann. Dieses Verhalten hängt von den angegebenen Parametern ab (t bedeutet einfacher Typ, p - Typ, der zuerst dereferenziert werden muss).

{{cast_rreq| base_type| rt=type oder rp=pointer_type}} - base_type muss in rt oder *rp konvertierbar sein.

{{cast_req1| base_type| t1=type oder p1=pointer_type}} - t1 oder *p1 muss in base_type konvertierbar sein.

{{cast_req2| base_type1| base_type2| t1=type oder p1=pointer_type| t2=type oder p2=pointer_type (optional)}} - t1 oder *p1 muss in base_type1 konvertierbar sein oder t2 oder *p2 muss in base_type2 konvertierbar sein. Wenn weder t2 noch p2 angegeben ist, wird angenommen, dass t1 oder *p1 sowohl in base_type1 als auch in base_type2 konvertierbar sein muss.

[bearbeiten] Klassifizierung von Standardcontainern

[bearbeiten] [{{purge}}] Dokumentation

Dies ist eine Gruppe von Vorlagen, die zur Kategorisierung von Containern verwendet werden.

Die allgemeine Form ist

{{cpp/container/TERM|container|if-true|if-false (optional)}}:

  • ergibt if-true, wenn container zu der gegebenen Container-/Adaptorgruppe gehört.
  • ergibt if-false (falls vorhanden), andernfalls.
TERM Container/Adapter in der Gruppe
if seq
  • array, inplace_vector, vector, hive, deque, list, forward_list
if assoc
  • set, multiset, map, multimap
  • unordered_set, unordered_multiset, unordered_map, unordered_multimap
  • flat_set, flat_multiset, flat_map, flat_multimap
if ord
  • set, multiset, map, multimap
  • flat_set, flat_multiset, flat_map, flat_multimap
if unord
  • unordered_set, unordered_multiset, unordered_map, unordered_multimap
if uniq
  • set, map
  • unordered_set, unordered_map
  • flat_set, flat_map
if eq
  • multiset, multimap
  • unordered_multiset, unordered_multimap
  • flat_multiset, flat_multimap
if set
  • set, multiset
  • unordered_set, unordered_multiset
  • flat_set, flat_multiset
if map
  • map, multimap
  • unordered_map, unordered_multimap
  • flat_map, flat_multimap
if ad
  • stack, queue, priority_queue
  • flat_set, flat_multiset, flat_map, flat_multimap
if flat
  • flat_set, flat_multiset, flat_map, flat_multimap
if c++98
  • vector, list, set, multiset, map, multimap
  • stack, queue, priority_queue
if c++11
  • array, forward_list
  • unordered_set, unordered_multiset, unordered_map, unordered_multimap
  • span
  • flat_set, flat_multiset, flat_map, flat_multimap
  • inplace_vector
  • hive

[bearbeiten] Beispiele

{{cpp/container/if set|multiset|Yes|No}} ergibt Yes.

{{cpp/container/if seq|multiset|Yes|No}} ergibt No.