Suchergebnisse für Anfrage "sfinae"

8 die antwort

Warum beschwert sich enable_if_t in Vorlagenargumenten über Neudefinitionen?

Ich habe den folgenden Fall, der mit @ funktioniestd::enable_if : template<typename T, typename std::enable_if<std::is_same<int, T>::value>::type* = nullptr> void f() { } template<typename T, typename std::enable_if<std::is_same<double, ...

4 die antwort

SFINAE hat nicht kompiliert [duplizieren]

Diese Frage hat hier bereits eine Antwort: SFINAE arbeitet im Rückgabetyp, aber nicht als Vorlagenparameter [/questions/15427667/sfinae-working-in-return-type-but-not-as-template-parameter] 3 answersSehr oft habe ich SFINAE verwendet, aber ich ...

4 die antwort

void_t schlägt in Visual Studio 2015 fehl

Ich verstehe nicht, warum der folgende Test mit Visual Studio 2015 immer fehlschlägt (die static_assert-Trigger): #include <type_traits> using namespace std; template<class T> using try_assign = decltype(declval<T&>() = declval<T const&>()); ...

TOP-Veröffentlichungen

4 die antwort

Mit `void_t` können Wiederholungsfehler bei mehreren Vererbungstypen erkannt werden.

Ich möchte ein @ implementierhas_no_duplicates<...> Typ Eigenschaft, die zu @ ausgewertet wistd::true_type Wenn die übergebene Liste variabler Typen keine doppelten Typen enthält. static_assert(has_no_duplicates<int, float>{}, ...

4 die antwort

“Anti-SFINAE” ermöglicht eine Überladung, wenn ein gegebener Ausdruck * nicht * wohlgeformt ist

Es ist einfach, SFINAE zu verwenden, um eine bestimmte Funktionsüberladung zu verbergen, wenn ein bestimmter Ausdruck nicht richtig geformt ist. Aber ich möchte das Gegenteil tun und eine Überladung genau dann verbergen, wenn ein gegebener ...

2 die antwort

SFINAE Um das Vorhandensein einer Nichtmitgliedsfunktion zu erkennen

Kennt jemand eine Methode zum Spezialisieren einer Vorlage, abhängig davon, ob eine Nicht-Member-Methode definiert ist? Ich weiß, dass es zahlreiche Möglichkeiten gibt, sich zu spezialisieren, wenn eine Mitgliedsfunktion vorhanden ist, aber ich ...

10 die antwort

Erklären Sie C ++ SFINAE einem Nicht-C ++ - Programmierer.

Was ist SFINAE in C ++? Können Sie es bitte in Worten erklären, die für einen Programmierer verständlich sind, der sich in C ++ nicht auskennt? Welchem Konzept in einer Sprache wie Python entspricht SFINAE?

2 die antwort

Verwenden Sie sfinae, um die Existenz von Namespace-Mitgliedern zu testen.

Ich habe versucht herauszufinden, ob es möglich ist, sfinae zum Testen von @ zu verwende Namespace Member Existenz. Google schweigt darüber. Ich habe den folgenden Code ausprobiert, aber er schlägt fehl. namespace xyz{ struct abc{}; } struct ...

10 die antwort

SFINAE funktioniert bei Typ- und Nicht-Typ-Vorlagenparametern unterschiedlich.

Warum funktioniert dieser Code: template< typename T, std::enable_if_t<std::is_same<T, int>::value, T>* = nullptr> void Add(T) {} template< typename T, std::enable_if_t<!std::is_same<T, int>::value, T>* = nullptr> void Add(T) {}und kann korrekt ...

4 die antwort

SFINAE passiert nicht mit std :: basic_type

Below SFINAE-Code mit verschiedenen Vorlagen lässt sich mit clang 3.7.1, C ++ 14 gut kompilieren: #include <array> #include <iostream> #include <vector> #include <cstdint> enum class Bar : uint8_t { ay, bee, see }; struct S { static void foo() ...