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.
4
Antworten

R-Werte und L-Werte anders verteilen und sfinae verwenden, um eine Option zu deaktivieren

Ich möchte eine Funktion drop_if implementieren. Bei einem unären Prädikat und einem sequentiellen Container wird ein Container desselben Typs zurückgegeben, der nur die Elemente enthält, die nicht dem Prädikat entsprechen. Wenn der Eingab...
14.06.2017, 10:43
2
Antworten

Statische Behauptungen und SFINAE

Bedenken Sie Folgendes: %Vor% Abgesehen von offensichtlich fehlenden Headern, sollte das kompiliert werden? Mit anderen Worten frage ich, ob der statische Assertionsfehler, der innerhalb eines nachfolgenden declltyps auslöst, während er d...
30.04.2013, 14:58
5
Antworten

Wie überprüft man, ob ein Template-Parameter ein Iterator-Typ ist oder nicht?

%Vor% Die Frage ist: Wie werden die fünf assert-Anweisungen übergeben?     
02.12.2010, 14:20
3
Antworten

SFINAE: Der Compiler wählt die spezialisierte Template-Klasse nicht aus

Ich habe ein Problem SFINAE : Im folgenden Code möchte ich, dass der C ++ - Compiler den spezialisierten Funktor auswählt und "Spezial" druckt, aber stattdessen "allgemein" druckt. %Vor% Wie kann ich es reparieren, so dass die spezialisi...
04.07.2012, 00:13
1
Antwort

Warum funktioniert SFINAE (enable_if) nicht für Member-Funktionen einer Klassenvorlage?

%Vor% Fehlermeldung: %Vor% Quelle auf cpp.sh . Ich dachte, beide typename std::enable_if<std::is_same<T,?>::value>::type könnten nicht gleichzeitig gültig sein. Bearbeiten Für die Nachwelt hier ist meine Bearbeitung...
20.06.2015, 11:05
1
Antwort

Was funktioniert mit der Funktion has_member nicht korrekt?

Ich probiere Beispiele aus Walter Browns TMP-Talk aus und versuche, seine% co_de zu bekommen % Implementierung funktioniert. Die Implementierung scheint jedoch fälschlicherweise wieder wahr zu sein, was zu der Annahme führt, dass es einige...
11.06.2015, 12:59
2
Antworten

Verwendung von SFINAE zur Erkennung einer Memberfunktion [duplizieren]

Um herauszufinden, ob eine Klasse eine Memberfunktion size hat, können Sie in C ++ 11 den folgenden Testhelfer definieren: %Vor% Gibt es einen ähnlichen Trick in C ++ 98, ohne auf Compiler-Erweiterungen wie typeof zu setzen?     
02.09.2013, 09:52
1
Antwort

SFINAE: declltype on operator []

Basierend auf den Antworten hier und hier Ich versuche es um das folgende zu verwenden %Vor% Es schlägt im Visual Studio mit fehl %Vor% Irgendwelche Ideen, wie Sie das beheben können?     
21.07.2017, 06:54
2
Antworten

SFINAE: Wissen, ob eine Funktion bereits existiert oder nicht

Grundsätzlich möchte ich Code wie folgt schreiben: %Vor% Dies ist nicht möglich, da für operator<<(ostream&, vector) keine Überladung vorliegt Also, ich schreibe eine Funktion, die den Job macht: %Vor% Das funktioniert gu...
13.07.2017, 16:30
2
Antworten

SFINAE um eine freie Funktion aus einem anderen Namensraum zu testen

Ich habe versucht, einen Hack zu erstellen, um zu testen, ob std::isnan ohne spezielle Gehäuse-Compiler im Präprozessor definiert ist, und kam zu dem Ergebnis, das ich gut verarbeitet habe. %Vor% Stellt sich heraus es erkennt es nicht ....
06.01.2012, 10:57