overload-resolution

Die Überladungsauflösung ist ein Sprachmechanismus, um zwischen mehreren brauchbaren Funktionsüberladungen zu wählen. Seine Regeln sind kompliziert und oft überraschend, selbst für erfahrene Benutzer.
1
Antwort

Kotlin: Inline-Lambda- und Überlast-Auflösungsambiguität

Ich habe ein einfaches Fabrikmuster, bei dem die Implementierung durch Überladungsauflösung bestimmt wird. Problem ist, dass der Kotlin-Compiler mit "Überladungsauflösung Ambiguität" für das Inline-Lambda klagt. %Vor% Wie löst der Kotlin-Com...
01.03.2016, 20:11
3
Antworten

Falsche Überladung, die Compilerfehler verursacht

In VS2013 werden im folgenden Beispiel zwei verschiedene Fehler angegeben, wenn versucht wird, eine Funktion an den Konstruktor eines Worker zu übergeben. Dennoch sind Lambda-Funktionen mit demselben Prototyp in Ordnung. Was mache ich falsch,...
17.04.2015, 17:42
2
Antworten

Überladenes Methodengruppenargument verwirrt die Überladungsauflösung?

Der folgende Aufruf der überladenen Enumerable.Select Methode: %Vor% schlägt mit einem Mehrdeutigkeitsfehler fehl (Namespaces wurden aus Gründen der Übersichtlichkeit entfernt): %Vor% Ich kann sicherlich verstehen, warum nicht d...
05.03.2011, 12:25
4
Antworten

find () mit überladenem Operator ==

Ich versuche mit einem überladenen Operator == () ein Element in einem Vektor zu finden. Wenn Sie jedoch type1 im folgenden Code verwenden, lautet die Ausgabe 1 und 0 (nicht gefunden). Die Verwendung von type2 ergibt 1 und 1. Die Umgebung...
04.10.2013, 17:57
2
Antworten

C ++ - Vorlage Funktionen Überladung Auflösung

Ich habe den folgenden Code: %Vor% Die Zeile #1 ruft f(T) auf, während #2 die Zeile f(bool) aufruft. Warum passiert das? Und was sind die Regeln für die Auswahl einer überladenen Vorlagenfunktion? AKTUALISIEREN Ich hab...
14.03.2014, 17:07
2
Antworten

Warum kann ich in std :: transform nicht std :: get0 verwenden?

Beim Versuch, den folgenden Code zu kompilieren, der map s Schlüssel in ein vector kopieren würde: %Vor% VS2013 kann nicht unterscheiden, welche get gemeint ist, aber diese einfachere Verwendung funktioniert gut: %Vor% Die Angab...
20.12.2014, 09:18
3
Antworten

Ambiguous string :: operator = Aufruf für Typ mit impliziter Konvertierung in int und String

Gegeben das folgende Programm: %Vor% Er kompiliert in Visual Studio 11, aber nicht in clang oder gcc. Es hat Probleme, weil es implizit von einem GenericType in ein int in ein char umwandeln möchte, aber es könnte auch ein string...
24.05.2012, 18:16
2
Antworten

Probleme mit der Überladungsauflösung const / non-const

Ich habe eine Klasse, die ungefähr so ​​aussieht: %Vor% Außerhalb der Klasse rufe ich die Funktion Get () auf. %Vor% Ich erwarte, dass dies die öffentliche Version aufruft, aber stattdessen Visual Studio Fehler: %Vor% Wenn Sie die ge...
04.06.2011, 21:52
2
Antworten

Ein Fehler in C ++ - Überladungsauflösungsregeln?

Betrachten Sie den folgenden Code: %Vor% Die Kompilierung schlägt mit einem "mehrdeutigen Überlastungsfehler" gemäß Standard fehl. Aber warum? Sicherlich sollte der "gleich gute" Operator im Heimat-Namespace von A Vorrang haben. Gibt es e...
25.02.2016, 17:23
2
Antworten

Überladungsauflösung und benutzerdefinierte Konvertierung

Betrachten Sie den einfachen Code: %Vor% Erstens bin ich mir nicht sicher, ob ich alles richtig verstehe, also korrigiere mich, wenn du mich bitte falsch findest. Mein Verständnis war, dass void func(B) gewählt werden sollte, da das Ar...
28.12.2015, 08:42