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

Mehrdeutige Überladung bei variantenlosen Vorlagen ohne Argumente

Verwandte: Mehrdeutige Überladung beim Zugriff auf argumentlose Vorlagenfunktionen mit variadische Parameter Einfache variadische Vorlagenfunktion kann nicht instantiiert werden Warum ist diese variadische Funktion mehrdeutig?...
01.11.2011, 22:40
2
Antworten

Klassenvorlagen-Spezialisierung, die alle Versionen von const / volatile Qualifikationen und & vs && akzeptiert

Ich spezialisiere std::common_type für meinen Typ. Ich habe folgende Spezialisierung definiert: %Vor% Und alles ist gut. Dann kommt jemand vorbei und ruft std::common_type<my_type, my_type &> auf. Die Standardversion verhält...
23.11.2013, 19:39
2
Antworten

Metaprogrammierung mit std :: is_same

Ist es möglich, etwas wie das folgende zu tun, das ohne Vorlagenspezialisierung kompiliert wird? %Vor%     
16.12.2014, 12:04
3
Antworten

Ermitteln des "optimalen" allgemeinen numerischen Typs in einem Vorlagenparameterpaket

Was ist der beste Weg, um einen gemeinsamen numerischen Typ in einem Template-Parameterpaket mit: zu bestimmen? die kleinste Größe, kein Genauigkeitsverlust und kein Risiko eines Überlaufs / Unterlaufs beim Konvertieren eines beliebige...
17.08.2013, 00:11
5
Antworten

Erzeuge einen n-dimensionalen Vektor mit gegebenen Größen

Ich möchte also einen mehrdimensionalen Vektor mit einem gegebenen Typ erstellen, wobei die erste Dimension die Größe des ersten Arguments eines Funktionsaufrufs hat usw., zum Beispiel wenn ich tue %Vor% x sollte 6x10x15 sein 3D-Array (be...
01.05.2015, 21:47
2
Antworten

Warum kann std :: tupleint nicht trivial kopierbar sein?

Gebaut mit diesem Online-Compiler , dem folgenden Code: %Vor% Ausgänge: %Vor% Ich erhalte die gleichen Ergebnisse mit Visual Studio 2015. Warum ist das der Fall? Gibt es einen triftigen Grund, warum ein std::tuple von POD-Typen, g...
05.08.2016, 02:00
3
Antworten

Metafunktion zum Konvertieren eines Typs in eine ganze Zahl und umgekehrt

Der typeid erlaubt es jedem Typ zur Laufzeit einen eindeutigen std::type_index zuzuordnen. Ich möchte das gleiche tun, indem ich zwei Metafunktionen statisch verwende: %Vor% Gibt es eine Möglichkeit, das in C ++ 11 zu tun?     
11.12.2015, 18:26
2
Antworten

Praktische C ++ Metaprogrammierung

Ich habe gerade das Buch "Practical C ++ Metaprogramming" gelesen und es gibt folgendes Beispiel, das ich nicht kompilieren kann. Kannst du mir helfen, das herauszufinden? %Vor% Ich bekomme einen Kompilierungsfehler, der besagt: 'type' ist k...
29.11.2016, 14:21
1
Antwort

Wie kann ich einen Move-Konstruktor eines Wrappertyps XT noexcept abhängig von is_nothrow_move_constructibleT deklarieren?

Angenommen, ich habe einen Wrappertyp %Vor% und ich kann nicht einfach X(X&&) = default , weil ich dort nicht-triviale Sachen machen muss. Ich möchte jedoch, dass es noexcept ist, aber nur, wenn T(T&&) noexcept...
24.11.2016, 12:35
1
Antwort

Erweitern eines consExpr-Arrays in eine Gruppe von nicht typisierten Vorlagenparametern

Angenommen, ich habe ein constexpr-Array zur Kompilierungszeit und eine variadische Klassenvorlage mit einer Reihe von Nicht-Typ-Parametern des gleichen Typs wie die Elemente des Arrays. Mein Ziel ist es, die Klassenvorlage mit den Werten aus...
13.11.2017, 11:45