template-meta-programming

Template Metaprogrammierung ist eine Metaprogrammierungstechnik, bei der Templates von einem Compiler verwendet werden, um temporären Quellcode zu generieren, der vom Compiler mit dem Rest des Quellcodes zusammengeführt und dann kompiliert wird.
2
Antworten

Iterativ Filtern von Argumenten, die bei der Kompilierung mit einem Vergleichselement übereinstimmen

Kontext Erstens, ein Kontext: Ich benutze ein leeres struct namens nothing , um etwas ähnlich zu "normal void zu emulieren. " , um einige Interfaces zu verschönern, die darauf basieren, mehrere Funktionsobjekte aneinander zu ketten....
17.09.2017, 17:18
3
Antworten

Wie gebe ich Template-Argumente an ein Objekt, das inline mit seiner Klasse erstellt wurde?

Ich weiß, dass wir das in C ++ tun können: %Vor% Dies macht ein Objekt vom Typ A namens a . Es entspricht: %Vor% Ich habe mich gefragt, wie ich das mit Vorlagen machen würde. Zum Beispiel: %Vor% Das kompiliert nicht, aber Sie be...
24.12.2012, 16:47
1
Antwort

Template-Parameterliste mit Schablonentypen

C ++ erlaubt Template-Template-Parameter wie folgt: %Vor% Der Bool -Typ kann durch typedef ersetzt werden (es ist also nicht erforderlich, dass der ursprüngliche Typname in der Deklaration angezeigt wird): %Vor% Das funktioniert perf...
31.03.2011, 09:11
3
Antworten

Generisches Dienstprogramm, um Aribatry-Tupel von Integral_Constants zu erzeugen

Unter Verwendung von Scott Schurr's str_const habe ich eine constexpr string. %Vor% Ich habe eine weitere Funktion constexpr , die die Position des ersten Caret in einer Zeichenfolge zurückgibt, beginnend mit der Position n: %Vo...
09.04.2017, 22:16
1
Antwort

template metafunktion zum Erkennen von Vorlagenspezialisierungen

Inspiriert von dieser Frage frage ich mich, ob es eine Kompilierzeitprüfung gibt, die man einführen kann, um zu erkennen, ob zwei gegebene Template-Instanziierungen: %Vor% werden aus der gleichen Definition erstellt oder wenn sie aus versc...
09.01.2013, 18:34
1
Antwort

Wie verzögere ich die Instanziierung eines statischen Datenelements in Visual C ++?

Der folgende Code funktioniert mit GCC und Clang, aber nicht mit Visual C ++: %Vor% Gemäß Abschnitt 14.7.1 des Standards:    ... die Initialisierung (und alle damit verbundenen Nebenwirkungen) einer statischen   Datenelement tritt nicht a...
25.05.2017, 07:14
1
Antwort

Erkennen, ob zwei Typen eine Spezialisierung derselben Klassenvorlage sind?

Ich würde gerne wissen, wie man eine Klasse type_traits schreibt, um festzustellen, ob es sich bei zwei Typen um Spezialisierungen derselben Vorlagenklasse handelt. Das große Problem ist, dass es für gemischte Typen / Nicht-Typen Template-Kla...
21.04.2013, 01:20
5
Antworten

Warum werden type_traits mit speziellen Template-Strukturen anstelle von constexpr implementiert?

Gibt es einen Grund, warum der Standard sie als Vorlage struct s anstelle von einfacher boolescher constexpr ? angibt? In einer zusätzlichen Frage, die wahrscheinlich in einer guten Antwort auf die Hauptfrage beantwortet wird, wie würde...
17.01.2012, 14:49
3
Antworten

Ist es möglich, Array-Größe aus einem Template-Argument zu extrahieren?

Wenn das ein Duplikat ist, entschuldige ich mich. Ich schaute mich um und fand ähnliche Probleme, aber nichts genau so. Wenn ich eine Vorlage wie folgt instanziiere ... %Vor% Wie kann ich die Vorlage schreiben, um sowohl auf den Typ als...
01.06.2015, 15:20
3
Antworten

Template-Spezialisierung für eine Reihe von Werten [duplizieren]

Ich möchte eine Template-Struktur foo schreiben, so dass foo<N>::value_type die nächstgrößere ganze Zahl (aufgerundet) zu N ist. Zum Beispiel foo<32>::value_type => uint32_t , foo<33>::value_type => uint64_t...
04.10.2011, 17:11