Suchergebnisse für Anfrage "argument-dependent-lookup"

0 die antwort

Cxx-prettyprint (für Standardcontainer) definiert seine Ausgabeoperatoren im Namespace std. Handelt es sich um eine Standardverletzung?

Ich habe erfolgreich verwendetcxx-prettyprint: Ein C ++ Container Pretty-Printer [http://louisdx.github.io/cxx-prettyprint/]Containerwerte zu protokollieren. (Siehe auchPretty-Print-C ++ - ...

1 die antwort

Sichtbarkeit von C ++ 11-SFINAE und -Funktionen bei der Instanziierung von Vorlagen

Ich bin mir nicht sicher, ob dies irgendetwas mit sfinae zu tun hat oder nur mit etwas, das für eine Template-Funktion relevant ist. Ich versuche, sfinae zu ...

1 die antwort

Sucht ADL nicht nach statischen Elementfunktionen?

Dies ist die Folgefrage vonSucht die argumentabhängige Suche auch nur nach Namespaces oder Klassen? , In dem @David Rodríguez sagte "ADL wird im umschli...

TOP-Veröffentlichungen

1 die antwort

Kann man die Adresse einer ADL-Funktion übernehmen?

Ist es möglich, die Adresse einer Funktion zu übernehmen, die über ADL gefunden werden würde?Zum Beispiel:

1 die antwort

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

Betrachten Sie eine Legacy-Klassenvorlage mit überladenen Additionsoperatoren+= und+ template<class T> class X { public: X() = default; /* implicict */ X(T v): val(v) {} X<T>& operator+=(X<T> const& rhs) { val += rhs.val; return *this; } X<T> ...

2 die antwort

Sucht die argumentabhängige Suche auch nur nach Namespaces oder Klassen?

2 die antwort

Wann wird ADL angewendet?

Es gibt 3 Beispiele: ICH. typedef int foo; namespace B { struct S { operator int(){ return 24; } }; int foo(B::S s){ return 0; } } int main() { int t=foo(B::S()); //24, ADL does not apply }II. namespace B { struct S { operator int(){ return ...

2 die antwort

Name versteckt durch Deklaration

#include <iostream> struct H { void swap(H &rhs); }; void swap(H &, H &) { std::cout << "swap(H &t1, H &t2)" << std::endl; } void H::swap(H &rhs) { using std::swap; swap(*this, rhs); } int main(void) { H a; H b; a.swap(b); }Und das ist das ...

3 die antwort

Interessantes Verhalten des Compilers mit Namespaces

Nehmen Sie den folgenden Code an: #include <iostream> using namespace std; namespace X { class A{}; void f(A a){} void g(int a){} } int main() { X::A a; f(a); g(5); }Wenn ich den Code kompiliere, tritt der folgende Kompilierungsfehler auf: ...

4 die antwort

Aufruf von begin und end über using-Anweisung?