Resultados da pesquisa a pedido "dependent-name"

2 a resposta

static_assert depende do parâmetro do modelo não-tipo (comportamento diferente no gcc e no clang)

template <int answer> struct Hitchhiker { static_assert(sizeof(answer) != sizeof(answer), "Invalid answer"); }; template <> struct Hitchhiker<42> {};Ao tentar desativar a instanciação geral do modelo comstatic_assert Eu descobri que o código ...

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

2 a resposta

O Visual C ++ Compiler permite o nome dependente como um tipo sem "typename"?

Hoje, um dos meus amigos me disse que o código a seguir se compila bem no Visual Studio 2008: #include <vector> struct A { static int const const_iterator = 100; }; int i; template <typename T> void PrintAll(const T & obj) { T::const_iterator ...

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

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