Resultados da pesquisa a pedido "crtp"
Utilizar CRTP (Modelo Curiosamente Recorrente de Modelo) com parâmetros de tipo adicionais
Tento usar o CRTP (Curiously Recurring Template Pattern) e forneço parâmetros de tipo adicionais: template <typename Subclass, typename Int, typename Float> class Base { Int *i; Float *f; }; ... class A : public Base<A, double, int> { };Este é ...
Ponto de função virtual C ++ CRTP da instanciação
Estou tentando entender se um simples padrão CRTP é válido pelo padrão.O código abaixo compila e funciona como esperado (no clang).Mas o meu entendimento dos...
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 ...
clang ++ não aceitando o uso do parâmetro modelo de modelo ao usar o CRTP
Estou recebendo erros de compilação ao tentar chamar o construtor de classe base na lista de inicialização derivada ao usar um parâmetro de modelo de modelo ...
Como implementar uma verificação em tempo de compilação de que um downcast é válido em um CRT
Eu tenho um CRPT antigo simples (por favor, não se distraia com restrições de acesso - a questão não é sobre eles): template<class Derived> class Base { void MethodToOverride() { // generic stuff here } void ProblematicMethod() ...
Restrições de parâmetro do tipo reflexivo: X <T> em que T: X <T> - alguma alternativa mais simple
Muitas vezes, estou tornando uma interface simples mais complicada adicionando uma restrição de parâmetro do tipo auto-referência ("reflexiva"). Por exemplo, eu posso transformar isso: interface ICloneable { ICloneable Clone(); } class Sheep : ...
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 << ...