Suchergebnisse für Anfrage "name-lookup"

6 die antwort

Rückgabetyp des bedingten Operators und zweiphasige Suche

Betrachten Sie das folgende Snippet: struct Base { }; struct Derived : Base { }; void f(Base &) { std::cout << "f(Base&)\n"; } template <class T = int> void g() { Derived d; f(T{} ? d : d); // 1 } void f(Derived &) { std::cout << ...

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 ...

4 die antwort

Warum ist dieser Aufruf von swap () nicht eindeutig?

Das folgende Programm #include <algorithm> #include <utility> #include <memory> namespace my_namespace { template<class T> void swap(T& a, T& b) { T tmp = std::move(a); a = std::move(b); b = std::move(tmp); } template<class T, class Alloc ...

TOP-Veröffentlichungen

2 die antwort

Welche Regel erlaubt "this->" den Zugriff auf Mitglieder abhängiger Basisklassen?

Wie wir wissen, ist der Code unten schlecht geformt, weil das Mitgliedx ist in einer abhängigen Basisklasse. Ändern jedochx zuthis->x in der angezeigten Zeile würde den Fehler beheben. template <typename T> struct B { int x; }; template ...

6 die antwort

Name Suche und Klassenbereich

Warum ist der Rückgabetyp von setVal vom Typ string und der Parametertyp vom Typ double typedef string Type; Type initVal(); class Exercise { public: typedef double Type; Type setVal(Type); Type initVal(); private: int val; }; ...

2 die antwort

Ambiguous Name Lookup mit using-Direktive

Es ist nicht zulässig, einen Namespace und eine Klasse mit demselben Namen in einen deklarativen Bereich zu setzen, d. H. namespace A {} class A{};ist schlecht geformt [http://coliru.stacked-crooked.com/a/5b837907b4d0609c] (siehe §3.3.1 / 4). ...

1 die antwort

C ++, das die Existenz freier Funktionen mit expliziten Parametern erkennt

Ich schreibe einige Typmerkmale, um zu sehen, ob eine freie Funktion mit einem bestimmten Satz von Parametern existiert. Die Funktionen haben eine Signatur, die ungefähr so aussieht: template <class T> void func( SomeClass &, SomeType const & ...

3 die antwort

Operator im Namespace-Bereich, der einen anderen im globalen Bereich versteckt

Ist das ein Compiler-Bug?

2 die antwort

Zwei-Phasen-Namenssuche für C ++ - Vorlagen - Warum?

Warum definiert der C ++ - Standard eine zweiphasige Suche nach Vorlagen? Konnten nicht auch Suchvorgänge für nicht abhängige Deklarationen und Definitionen ...

3 die antwort

Warum schattenfreie Funktionen für Klassenmitglieder mit demselben Namen?

Es ist mir kürzlich aufgefallen dieses Mitglied funktioniertvollständigSchatten freie Funktionen mit dem gleichen Namen innerhalb der Klasse. Und damit meine...