Resultados de la búsqueda a petición "name-lookup"

1 la respuesta

El operador de comparación para std :: vector <T> no puede encontrar el operador de comparación para T

El siguiente código muy simple no compilará #include <vector> #include <string> namespace Foobar { struct Test { std::string f; std::uint16_t uuid; }; } bool operator==(const Foobar::Test& lhs, const Foobar::Test& rhs){ return lhs.f == rhs.f && ...

1 la respuesta

ocultamiento del parámetro de plantilla de plantilla de miembro

detemperatura local [http://eel.is/c++draft/temp.res#temp.local-7] : En la definición de un miembro de una plantilla de clase que aparece fuera de la definición de plantilla de clase, el nombre de un miembro de la plantilla de clase oculta el ...

3 la respuesta

Tipo de retorno del operador condicional y búsqueda en dos fases

Considere el siguiente fragmento: 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 << "f(Derived&)\n"; } ...

1 la respuesta

Ocultar nombre usando declaración

#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); }Y este es el ...

2 la respuesta

¿Por qué esta llamada a swap () es ambigua?

El siguiente programa #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 ...

1 la respuesta

¿Cuál es la regla que permite a 'this->' acceder a miembros de clases base dependientes?

Como sabemos, el siguiente código está mal formado porque el miembrox está en una clase base dependiente. Sin embargo, cambiandox athis->x en la línea indicada corregiría el error. template <typename T> struct B { int x; }; template <typename T> ...

2 la respuesta

Búsqueda de nombre y alcance de clase

¿Por qué es que el tipo de retorno de setVal es de tipo cadena y el tipo de parámetro es de tipo doble typedef string Type; Type initVal(); class Exercise { public: typedef double Type; Type setVal(Type); Type initVal(); private: int val; }; ...

1 la respuesta

Búsqueda de nombres ambiguos con la directiva using

No está permitido poner un espacio de nombres y una clase con el mismo nombre en una región declarativa, es decir namespace A {} class A{};está mal formado [http://coliru.stacked-crooked.com/a/5b837907b4d0609c](Ver §3.3.1 / 4). Sin embargo, uno ...

1 la respuesta

C ++ detecta la existencia de funciones libres con parámetros explícitos

Estoy escribiendo algunos rasgos de tipo para ver si existe una función libre con un conjunto específico de parámetros. Las funciones tienen una firma que se parece a esto: template <class T> void func( SomeClass &, SomeType const & );Sé de ...

3 la respuesta

Operador en el ámbito del espacio de nombres que oculta a otro en el alcance global

¿Es este un error de compilación?