Als «templates» getaggte Fragen

187
Standardvorlagenargumente für Funktionsvorlagen

Warum sind Standardvorlagenargumente nur für Klassenvorlagen zulässig? Warum können wir keinen Standardtyp in einer Elementfunktionsvorlage definieren? Beispielsweise: struct mycclass { template<class T=int> void mymember(T* vec) { // ... } }; Stattdessen erzwingt C ++, dass...

186
Rendern einer Vorlagenvariablen als HTML

Ich benutze die 'Nachrichten'-Oberfläche, um Nachrichten wie folgt an den Benutzer weiterzuleiten: request.user.message_set.create(message=message) Ich möchte HTML in meine {{ message }}Variable aufnehmen und rendern, ohne das Markup in der Vorlage zu

161
std :: function vs template

Dank C ++ 11 haben wir die std::functionFamilie der Funktor-Wrapper erhalten. Leider höre ich immer wieder nur schlechte Dinge über diese Neuzugänge. Am beliebtesten ist, dass sie schrecklich langsam sind. Ich habe es getestet und sie saugen wirklich im Vergleich zu Vorlagen. #include...

158
C ++ - Vorlagen, die nur bestimmte Typen akzeptieren

In Java können Sie generische Klassen definieren, die nur Typen akzeptieren, die die Klasse Ihrer Wahl erweitern, z. public class ObservableList<T extends List> { ... } Dies erfolgt mit dem Schlüsselwort "erweitert". Gibt es ein einfaches Äquivalent zu diesem Schlüsselwort in C ++?...

150
Standardargumente für Vorlagen

Wenn ich Folgendes tun darf: template <typename T = int> class Foo{ }; Warum darf ich hauptsächlich nicht folgendes tun? Foo me; Aber ich muss folgendes angeben: Foo<int> me; In C ++ 11 wurden Standardvorlagenargumente eingeführt, die meines Erachtens derzeit nur schwer zu verstehen...

148
Statische Elementinitialisierung in einer Klassenvorlage

Ich würde das gerne machen: template <typename T> struct S { ... static double something_relevant = 1.5; }; aber ich kann nicht, da something_relevantes nicht vom integralen Typ ist. Es hängt nicht davon ab T, aber vorhandener Code hängt davon ab, dass er ein statisches Mitglied von ist...

148
Wie funktioniert `void_t`?

Ich habe Walter Browns Vortrag auf der Cppcon14 über moderne Vorlagenprogrammierung ( Teil I , Teil II ) gesehen, in dem er seine void_tSFINAE-Technik vorstellte. Beispiel: Bei einer einfachen Variablenvorlage, die bewertet, voidob alle Vorlagenargumente gut geformt sind: template< class ......