Resultados da pesquisa a pedido "crtp"

5 a resposta

Qual é o padrão de modelo curiosamente recorrente (CRTP)?

Sem se referir a um livro, alguém pode fornecer uma boa explicação paraCRTP com um exemplo de código?

2 a resposta

Quais são as regras para uma inicialização de variável estática de classe?

Eu tenho algum código legado e preciso adicionar uma nova classe para a mensagem (o que é irrelevante para a minha pergunta). Mas acontece que eu preciso declarar um construtor vazio para que alguma estática seja inicializada. Não é um construtor ...

4 a resposta

Proteger o padrão CRTP da pilha transbordando em chamadas "puramente virtuais"

Considere o seguinte exemplo padrão de CRTP: #include <iostream> template<class Derived> struct Base { void f() { static_cast<Derived *>(this)->f(); } void g() { static_cast<Derived *>(this)->g(); } }; struct Foo : public Base<Foo> { void f() { ...

5 a resposta

Como evitar erros ao usar o CRTP?

UsandoCRTP [http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern]às vezes escrevo um código como este: // this was written first struct Foo : Base<Foo, ...> { ... }; // this was copy-pasted from Foo some days later struct Bar : ...

2 a resposta

Usando CRTP com herança virtual

Eu tenho uma hierarquia de nós, onde "diamante" pode ocorrer. Cada nó deve ser clonável, mas não quero gravar o método clone em cada nó. Então eu uso o CRTP. class Node { public: Node(){} Node(Fill*) { } virtual ~Node() {} virtual Node ...

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

1 a resposta

Problemas de subclassificação dependentes de parâmetros de modelo e modelo curiosamente recorrentes

Estou tentando fazer o seguinte código funcionar template < class __derived, class __object = typename __derived::Object > struct Base { using Derived = __derived; using Object = __object; void function(Object o) { return Derived::function(s); } ...

4 a resposta

Uma coleção polimórfica de CRTP (Curiously Recorrring Template Pattern) em C ++?

Eu tenho aulaBase da qual eu tenho duas classes,DerivedA eDerivedB conforme definido abaixo. template <typename Derived> class Base{ public: double interface(){ static_cast<Derived*>(this)->implementation(); } }; class Derived,A : ...

2 a resposta

Criando referências genéricas circulares

Estou escrevendo um aplicativo para fazer alguns cálculos distribuídos em uma rede ponto a ponto. Ao definir a rede, tenho duas classes: P2PNetwork e P2PClient. Eu quero que eles sejam genéricos e as definições de: P2PNetwork<T extends ...

2 a resposta

Como proteger o CRTP contra o fornecimento de superclasse errada? [duplicado]

Esta pergunta já tem uma resposta aqui: Como evitar erros ao usar o CRTP? [/questions/4417782/how-to-avoid-errors-while-using-crtp] 5 respostasNopadrão curiosamente recorrente [http://en.wikipedia.org/wiki/Curiously_recurring_template_pattern], ...