Resultados da pesquisa a pedido "templates"

4 a resposta

Como o C ++ vincula instâncias de modelo

Se eu definir uma função (talvez uma função de membro da classe, mas não embutida) em um arquivo de cabeçalho incluído por duas unidades de conversão diferentes, recebo um erro de link, pois essa função é definida de várias formas. O mesmo não ...

1 a resposta

Por que nenhuma palavra-chave de modelo é necessária se existe uma função de modelo global não relacionada com o mesmo nome?

Esta pergunta está relacionada à minha pergunta anteriorErro do compilador ao tentar chamar o método de modelo da instância ...

2 a resposta

Por que um parâmetro de modelo não permite 'typename' após a lista de parâmetros

Typename do modelo de modelo?Ao usarmodelo modelosintaxe como emtemplate <template <typename> class T>, é necessário usar a palavra-chaveclass, como usandotypename dá um erro ao longo das linhas de: erro: o parâmetro do modelo requer 'classe' ...

1 a resposta

correspondência de parâmetros de modelos variadic em std :: function

Eu tenho o seguinte código: #include <iostream> #include <functional> template<typename Return, typename... Params> void func(std::function<Return(Params... )> x) {} void f(double) {} int main() { //func<void, double>(f); // compile error here ...

1 a resposta

Por que a verificação de controle de acesso usual se aplica a nomes usados para especificar instanciação explícita quando acessada através dos parâmetros do modelo?

O padrão C ++ declara o seguinte na nota 14.7.2 / 12 [temp.explicit]: As regras usuais de verificação de acesso não se aplicam a nomes usados para especificar instanciações explícitas. [Nota: Em particular, os argumentos e nomes do modelo usados ...

3 a resposta

Modelos C ++ ocultam membros pai

Normalmente, quandoA está herdando deB, todos os membros deA são automaticamente visíveis paraBfunções, por exemplo class A { protected: int a; }; class B : public A { int getA() {return a;} //no need to use A::a, it is automatically visible ...

2 a resposta

É necessário listar explicitamente os parâmetros padrão ao usar o parâmetro do modelo?

Gostaria de perguntar se o seguinte exemplo de código deve ser compilado: #include <iostream> #include <vector> #include <typeinfo> using namespace std; template <template <class...> class C> struct convert_container { using type = C<double>; // ...

4 a resposta

O uso de std :: vector <std :: shared_ptr <const T>> é um antipadrão?

Durante muito tempo eu estava usandostd::vector estd::shared_ptr de mãos dadas. Recentemente comecei a usarstd::shared_ptr<const T> sempre que um ponteiro para um objeto const fosse necessário. Tudo bem, já questd::shared_ptr<T> pode ser lançado ...

3 a resposta

Criando uma lista de tempo de compilação incrementalmente em C ++

No C ++, existe uma maneira de criar uma lista de tempo de compilação incrementalmente, no seguinte padrão? START_LIST(List) ADD_TO_LIST(List, int) ADD_TO_LIST(List, float) ADD_TO_LIST(List, double) END_LIST(List)O resultado disso deve ser ...

3 a resposta

Polimorfismo estático com CRTP: usando a classe base para chamar métodos derivados

Um dos principais benefícios devirtual em C ++ é capaz de usar a classe base (ponteiro ou referência) para chamar métodos derivados. Eu estou lendousando CRTP para implementar polimorfismo ...