Resultados da pesquisa a pedido "name-lookup"

2 a resposta

Em uma classe derivada de modelo, por que preciso qualificar os nomes dos membros da classe base com "this->" dentro de uma função de membr

Enquanto eu investigo o código fonte do Qt, vi que os caras da trolltech explicitamente usamthis palavra-chave para acessar um campo no destruido inline ~QScopedPointer() { T *oldD = this->d; Cleanup::cleanup(oldD); this->d = 0; }Então, qual é ...

1 a resposta

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

3 a resposta

Tipo de retorno do operador condicional e pesquisa em duas fases

Considere o seguinte trecho: 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"; } int ...

2 a resposta

Pesquisa de nome de duas fases para modelos C ++ - Por quê?

Por que o padrão C ++ define duas fases de pesquisa para modelos? As pesquisas e declarações não dependentes de não dependentes também podem ser adiadas para...

1 a resposta

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

2 a resposta

Por que essa chamada para swap () é ambígua?

O seguinte 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 a resposta

Classe de modelo de herança múltipla

class messageA { }; class messageB { }; template<class T> class queue { public: virtual ~queue() {} void submit(T& x) {} }; class A : public queue<messageA>, public queue<messageB> { }; int main() { A aa; ...

1 a resposta

Pesquisa de nome ambígua com diretiva usando

Não é permitido colocar um espaço para nome e uma classe com o mesmo nome em uma região declarativa, ou seja, namespace A {} class A{};está mal formado [http://coliru.stacked-crooked.com/a/5b837907b4d0609c](ver §3.3.1 / 4). No entanto, pode-se ...

3 a resposta

Por que o membro da classe funciona com funções livres de sombra com o mesmo nome?

Recentemente, veio ao meu conhecimento que as funções de membrocompletamentesombra funções livres com o mesmo nome quando dentro da classe. E por completamen...

1 a resposta

Qual é a regra que permite que `this->` acesse membros de classes base dependentes?

Como sabemos, o código abaixo está mal formado porque o membrox está em uma classe base dependente. Entretanto, mudarx parathis->x na linha indicada corrigiria o erro. template <typename T> struct B { int x; }; template <typename T> struct C : ...