Resultados da pesquisa a pedido "argument-dependent-lookup"
Cxx-prettyprint (para contêineres padrão) define seus operadores de saída dentro do namespace std - isso é uma violação padrão?
Eu tenho usado com sucessocxx-prettyprint: Uma impressora bonita de contêiner C ++ [http://louisdx.github.io/cxx-prettyprint/]para registrar valores de contêiner. (Veja tambémRecipientes C ++ STL com impressão ...
C ++ 11 style SFINAE e visibilidade de função na instanciação de template
Não tenho certeza se isso tem algo a ver com sfinae, ou apenas algo que é relevante para qualquer função modelada. Eu estou tentando usar sfinae para ativar ...
O ADL não procura funções membro estáticas?
Esta é uma pergunta de acompanhamentoA pesquisa dependente de argumentos só procura namespaces ou classes também? , Em que @David Rodríguez disse "ADL v...
É possível obter o endereço de uma função ADL?
É possível obter o endereço de uma função que seria encontrada através da ADL?Por exemplo:
A refatoração de um operador sobrecarregado em uma função que não é membro pode quebrar algum código?
Considere um modelo de classe herdado com operadores de adição sobrecarregados+= e+ 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> ...
Ocultar o nome usando a declaração
#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); }E este é ...
O operador de comparação para std :: vector <T> falha ao encontrar o operador de comparação para T
O código muito simples a seguir não será compilado #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 == ...
Baseado em intervalo para loops e ADL
oRascunho de trabalho padrão C ++ 0x [http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3242.pdf]afirma (seção 6.5.4) o seguinte sobre as chamadas begin () e end () implícitas em um loop for baseado em intervalo: 'begin' e 'end' são ...
Quando é aplicada a ADL?
Existem 3 exemplos: EU. 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 24; } ...