sfinae

Substitutionsfehler ist kein Fehler. Dies ist eine C ++ - Programmiertechnik, mit der Vorlagen Eigenschaften ihrer Template-Parameter verifizieren können, so dass verschiedene Spezialisierungen verwendet werden können, wenn bestimmte Arten von Objekten verfügbar sind.
1
Antwort

Das Beste aus static_assert und std :: is_invocable holen

Ich habe eine Bibliothek mit mehreren Funktionsobjekten, die abhängig von std::is_integral . Ich möchte std::is_invocable zurückgeben, um false zurückzugeben, wenn die Bedingung fehlschlägt, aber ich möchte auch eine nette static_as...
07.07.2017, 20:01
1
Antwort

C ++ erkennt das Vorhandensein freier Funktionen mit expliziten Parametern

Ich schreibe einige Typeigenschaften, um zu sehen, ob eine freie Funktion mit einer bestimmten Menge von Parametern existiert. Die Funktionen haben eine Signatur, die ungefähr so ​​aussieht: %Vor% Ich kenne im Voraus die Werte für T , Som...
17.03.2014, 20:05
1
Antwort

Ist es möglich, eine Vorlage für die Sprachverknüpfung zu spezialisieren?

Die Sprachverknüpfung einer Funktion gehört zu ihrem Typ: 7.5.1 [dcl.link] des ISO C ++ Standards:    Die Standardsprachenverknüpfung aller Funktionstypen, Funktionsnamen und Variablennamen ist die C ++ - Sprachverknüpfung. Zwei Funktionst...
12.10.2012, 23:21
3
Antworten

Wie kann man die Anwesenheit einer inneren Klasse in einer Klasse über SFINAE testen?

Ich versuche eine andere Template-Spezialisierung für Klassen zu haben, die eine innere Klasse mit einem bestimmten Namen haben. Ich habe einen Hinweis von hier genommen und Folgendes versucht : %Vor% Wie Sie sehen können, funktioniert es,...
22.08.2012, 06:15
2
Antworten

Verwenden von 'void_t' zum Erkennen mehrfacher Vererbungstyp-Wiederholungsfehler

Ich möchte eine has_no_duplicates<...> -Typ-Eigenschaft implementieren, die zu std::true_type ausgewertet wird, wenn die übergebene Variantentyp-Liste keine doppelten Typen aufweist. %Vor% Nehmen wir an, für den Umfang dieser Fra...
14.08.2015, 18:57
3
Antworten

Auswahl eines geeigneten Kopierkonstruktors basierend auf Vorlagenparametern

Ich möchte die Implementierung einer Memberfunktion (Kopierkonstruktor) basierend auf einem Template-Argumentwert auswählen. Ich vermute, es gibt zwei Ansätze: SFINAE und Template-Teilspezialisierung. Der letzte soll angeblich so aussehen:...
27.10.2015, 08:52
1
Antwort

Warum stimmen C ++ - Vorlagen überein, wenn die Methode keine Überprüfung durchführt?

Der folgende Code wird nicht kompiliert, da struct A den Operator -- nicht unterstützt. %Vor% Gleiches gilt für diesen Code. %Vor% Warum kompiliert das (in C ++ 11)? %Vor% Scheint, dass das Instanziieren der Vorlage nicht autom...
17.07.2017, 17:11
1
Antwort

Warum muss das Member Detector Fallback int sein?

Ich dachte, ich hätte die Idee von dieser Klasse (von hier Ссылка ): %Vor% aber ich habe versucht, es an meinen Fall anzupassen, in dem ich nach einem Mitglied double MyTest gesucht habe. Also habe ich diese Zeile geändert: %Vor% bis...
14.12.2015, 16:40
5
Antworten

Warum wird der folgende Code kompiliert, obwohl ich nicht definierte Memberfunktionen habe?

Ich habe die Hälfte an diesem Stück Code gearbeitet und dachte, dass das offensichtlich nicht kompiliert wird, bevor ich den Build-Knopf drücke. Ich war überrascht, dass es nicht nur kompiliert, sondern auch verlinkt und gearbeitet hat. Wen...
27.02.2012, 21:19
1
Antwort

SFINAE consxpr mit std :: get

Dies ist eine Follow-up-Frage zu constexpr mit SFINAE ermitteln . Ich möchte herausfinden, ob ein Element eines Tupels (oder irgendetwas, das mit std::get verwendet werden kann) constexpr ist. Also habe ich die folgenden Helfer ähnlich wi...
26.08.2016, 10:09