Suchergebnisse für Anfrage "overload-resolution"
Aufruf der mit ref-Qualifiers überladenen Member-Funktion ist mehrdeutig
Beim Kompilieren meines Codes mit habe ich ein seltsames Verhalten festgestelltG ++ (gcc4.8.1 undMinGW4.8.2 mit-std=gnu++1y Flagge). Im Geiste der SSCCE isoliere ich das folgende Snippet: struct C { template< typename X > auto f(X &&) const & { ...
Wenn die Adresse einer Funktion während der Deduktion nicht aufgelöst werden kann, liegt ein SFINAE- oder ein Compilerfehler vor?
In C ++ 0x wurden SFINAE-Regeln so vereinfacht, dass ungültige Ausdrücke oder Typen, die im "unmittelbaren Kontext" des Abzugs auftreten, nicht zu einem Compilerfehler, sondern zu einem Abzugsfehler (SFINAE) führen. Meine Frage lautet: Wenn ich ...
Eigenartige Überlastungsauflösung mit while (true)
Ich habe Synchronisierungs- / Asynchronisierungsüberladungen implementiert, als ich auf diese besondere Situation gestoßen bin: Wenn ich einen regulären Lambda-Ausdruck ohne Parameter oder einen Rückgabewert habe, geht er an denRun Überladung ...
Bestimmen, welche Überlastung ausgewählt wurde
Nehmen wir an, ich habe eine willkürlich komplizierte überladene Funktion: template <class T> void foo(T&& ); template <class T> void foo(T* ); void foo(int );Ich möchte für einen bestimmten Ausdruck wissen,welch foo() wird gerufen. Zum ...
Mehrdeutiger Methodenaufruf mit Überladung des Parameters Action <T>
Beim Aufrufen einer überladenen Methode mit einem anderen Compiler ist ein unerwartetes Verhalten aufgetretenAction<T> Variationen. Nehmen wir an, ich habe diese KlasseTest und ich erstelle seine Instanz in derCallTest Konstrukteur. public ...
Wie wird "std :: cout << std :: endl;" kompiliert?
Die meistenIO Stream-Manipulatoren [http://en.cppreference.com/w/cpp/io/manip] sind reguläre Funktionen mit folgender Signatur: std::ios_base& func( std::ios_base& str );Allerdings einige Manipulatoren (einschließlich der am häufigsten ...
List-Initialisierung und fehlgeschlagene Überladungsauflösung des Konstruktors initializer_list
Das Folgende kann nicht mit @ kompiliert werdclang35 -std=c++11: #include <iostream> #include <string> #include <initializer_list> class A { public: A(int, bool) { std::cout << __PRETTY_FUNCTION__ << std::endl; } A(int, double) { std::cout << ...
Warum passt der Konstruktor der variablen Vorlage besser als der Konstruktor der Kopie?
Der folgende Code wird nicht kompiliert: #include <iostream> #include <utility> struct Foo { Foo() { std::cout << "Foo()" << std::endl; } Foo(int) { std::cout << "Foo(int)" << std::endl; } }; template <typename T> struct Bar { Foo foo; Bar(const ...
Warum wird eine generische Methode gewählt, wenn es eine nicht generische gibt?
Das folgende Programm erzeugt diese Ausgabe: Foo<T> called Process is terminated due to StackOverflowException.So,Foo(baz) ruft das generische @ aFoo<T>, aberBar(baz) rekursiv und machtnich AnrufBar<T>. Ich bin auf C # 5.0 und Microsoft .NET. ...