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

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

2 la respuesta

¿Por qué la función declarada dentro de otra función no participa en la búsqueda dependiente del argumento?

Considere un ejemplo simple: template <class T> struct tag { }; int main() { auto foo = [](auto x) -> decltype(bar(x)) { return {}; }; tag<int> bar(tag<int>); bar(tag<int>{}); // <- compiles OK foo(tag<int>{}); // 'bar' was not declared in this ...

2 la respuesta

¿Existe una forma legal de imprimir tuplas y pares usando el operador <<?

Tengo un conjunto de plantillas / funciones que me permiten imprimir una tupla / par suponiendo que cada tipo en la tupla / par tieneoperator<< definido para ello. Desafortunadamente, debido a 17.4.3.1, es ilegal agregar mioperator<< sobrecargas ...

2 la respuesta

Comience genéricamente, más decltype considerando la declaración de uso local

l bucle a distancia de @ C ++ 0x tiene una excepción especial para manejar matrices (FDIS §6.5.4), y hay dos funciones, std :: begin y end, que están sobrecargadas para manejar matrices o para seleccionar métodos de inicio / fin . Esto me lleva a ...

2 la respuesta

obtener un elemento de una tupla [duplicar]

Posible duplicado: ¿Por qué ADL no encuentra plantillas de funciones? [https://stackoverflow.com/questions/2953684/why-doesnt-adl-find-function-templates] Callingget no parece invocar la búsqueda dependiente del argumento: auto t = ...

3 la respuesta

Comportamiento interesante del compilador con espacios de nombres

Asuma el siguiente código: #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); }Cuando compilo el código, se produce el siguiente error de compilación: main.cpp: en ...

3 la respuesta

Operador de sobrecarga >> para std :: pair <int, int>

Estoy tratando de usarboost::lexical_cast en unstd::pair<int, int>. #include <iostream> #include <utility> #include <boost/lexical_cast.hpp> namespace my { // When my_pair is a user defined type, this program compiles // and runs without any ...

3 la respuesta

¿Por qué ADL no funciona con Boost.Range?

Considerando: #include <cassert> #include <boost/range/irange.hpp> #include <boost/range/algorithm.hpp> int main() { auto range = boost::irange(1, 4); assert(boost::find(range, 4) == end(range)); }Demostración en vivo de ...

3 la respuesta

¿Qué significa `usar std :: swap` dentro del cuerpo de una implementación de método de clase?

Durante algunas prácticas de c ++, estaba tratando de aprender y adoptar el modismo de intercambio de copias siguiendo esta explicación detallada sobre esta pregunta:el modismo Copy-Swap [https://stackoverflow.com/q/3279543/356440]. Pero ...

4 la respuesta

¿Invocar comenzar y terminar a través de la directiva using?

El idioma establecido para invocar.