argument-dependent-lookup

Eine Form der Namenssuche in C ++, die es ermöglicht, Funktionsnamen in Namespaces zu finden, die den Argumenten zugeordnet sind, die im Funktionsaufruf verwendet werden.
1
Antwort

Kann ein überladener Operator in eine Nicht-Member-Funktion umgewandelt werden, um Code zu brechen?

Betrachten Sie eine Legacy-Klassenvorlage mit überladenen Additionsoperatoren += und + %Vor% Bei der Code-Überprüfung wird beobachtet, dass + in += implementiert werden kann. Warum also nicht ein Nicht-Member (und garantiert Symm...
28.09.2014, 20:10
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
3
Antworten

Suche nach merkwürdigen Funktionen der geschachtelten Klasse: umgebende Klassenfunktionen verstecken globale Funktionen

Ich habe den folgenden vereinfachten Code %Vor% Und ich habe diesen Fehler:    error: kann die Elementfunktion 'int Namespace :: Class :: foo () const' nicht aufrufen   ohne Objekt: %Vor% Es scheint, dass der Compiler die nicht stati...
10.12.2014, 13:30
2
Antworten

Warum wird bei einer zweiphasigen Suche die überladene Version von 'swap' nicht ausgewählt?

Ich studiere diese faszinierende Antwort zu subtile Frage in Bezug auf die bewährte Methode zum Implementieren der Funktion swap für benutzerdefinierte Typen . (Meine Frage wurde ursprünglich durch eine Diskussion über die Illegalität d...
27.01.2014, 15:20
2
Antworten

Was ist der Grund für ADL für Argumente, deren Typ eine Klassenvorlagenspezialisierung ist?

Ich habe einige Zeit damit verbracht herauszufinden, warum mein Code nicht kompiliert wird, und ich habe festgestellt, dass in C ++ Argumentabhängige Suche Vorlagennamen-Argumente verwendet, um den Namen-Lookup-Bereich zu bestimmen. %Vor%...
19.04.2017, 10:21
1
Antwort

Inkonsistenzen mit bedingten NoExcept- und Overload-Bedingungen

Ich habe ein Problem, das das . Kurz gesagt, ich habe eine Methode magic , die noexcept ist, wenn eine andere Methode noexcept ist. Das Seltsame ist, dass diese "andere Methode" zwei Überladungen hat und der Compiler wählt die zw...
03.05.2017, 15:29
1
Antwort

Argumentabhängige Suche anhand der Basis einer Vorlagenklasse

Ich habe eine Template-Klasse NB::B<T> , die von einer Nicht-Template-Klasse NA::A in einem Namespace abgeleitet ist. act<T> ist eine Vorlagenfunktion, die add_ref function für eine Instanz ihres Vorlagenarguments aufruft...
23.07.2012, 19:25
1
Antwort

Vorlagefunktion des Vorlagenobjekts und Namespaces

Im folgenden C ++ - Beispielcode stimmen GCC 6 und Clang 3.8 nicht überein, was das richtige Verhalten ist: Dieses konstruierte Beispiel "funktioniert" - wie in der Funktion test() gibt o.p in GCC zurück. In clang ruft es die (undefinie...
19.04.2016, 15:11
2
Antworten

Keine ADL innerhalb von declltype auf VS2012

Ich habe gerade festgestellt, dass der Versuch, den Rückgabetyp einer Funktion über declltype zu erhalten, nicht ADL (argument-dependent-lookup) auf VS2012 (getestet mit cl.exe V17.00.60610.1) beinhaltet. Das folgende Beispiel %Vor% Gibt...
16.07.2013, 11:01
1
Antwort

In Bezug auf die Definition von Freundesfunktionen und Namespace-Bereiche

Ich habe diesen Blogbeitrag gelesen und versucht, herumzuspielen mit dem Snippet, das bereitgestellt wurde. %Vor% Wenn ich richtig verstanden habe, wird die Definition in // 1 den Namen f einfügen, wo sich // 2 befindet. Es wird j...
06.09.2017, 11:15