Resultados da pesquisa a pedido "crtp"
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 ...
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); } ...
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 : ...
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 ...
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], ...
Erro de compilação do CRTP
O seguinte será compilado com o GCC 5.2, mas não com o Visual Studio 2015. template <typename Derived> struct CRTP { static constexpr int num = Derived::value + 1; }; struct A : CRTP<A> { static constexpr int value = 5; }; Reclama queA não tem ...
Padrão de modelo curiosamente recorrente (CRTP) com constexpr estático em Clang
Considere o meu exemplo simples abaixo: #include <iostream> template <typename T> class Base { public: static constexpr int y = T::x; }; class Derived : public Base<Derived> { public: static constexpr int x = 5; }; int main() { std::cout << ...
Inicializando um membro de dados constexpr estático da classe base usando um membro de dados constexpr estático da classe derivada
Considere o seguinte código: template<typename T> struct S { static constexpr int bar = T::foo; }; struct U: S<U> { static constexpr int foo = 42; }; int main() { }GCC v6.1 [https://godbolt.org/g/xDmBPW]compila,clang 3.8 ...
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?
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 ...