Resultados de la búsqueda a petición "crtp"

1 la respuesta

C ++: con CRTP, la clase definida en la clase derivada no es accesible en la clase base

Aquí está la clase base (simplificada): template <class T> class SharedObject { protected: QExplicitlySharedDataPointer <typename T::Data> d; };Y aquí está el derivado: class ThisWontCompile : public SharedObject <ThisWontCompile> { private: ...

3 la respuesta

Utilice un patrón de plantilla curiosamente recurrente (CRTP) con parámetros de tipo adicionales

Intento utilizar el patrón de plantilla curiosamente recurrente (CRTP) y proporcionar parámetros de tipo adicionales: template <typename Subclass, typename Int, typename Float> class Base { Int *i; Float *f; }; ... class A : public Base<A, ...

5 la respuesta

Cómo implementar una verificación en tiempo de compilación de que un downcast es válido en un CRTP?

Tengo un CRPT viejo y simple (no se distraiga con las restricciones de acceso; la pregunta no es sobre ellos): template<class Derived> class Base { void MethodToOverride() { // generic stuff here } void ProblematicMethod() ...

5 la respuesta

C ++ polimorfismo estático (CRTP) y usando typedefs de clases derivadas

Yo leo elWikipedia article [http://en.wikipedia.org/wiki/Curiously_Recurring_Template_Pattern] sobre el patrón de plantilla curiosamente recurrente en C ++ para hacer un polimorfismo estático (léase: tiempo de compilación). Quería generalizarlo ...

5 la respuesta

uso inválido de tipo incompleto

Estoy tratando de usar un typedef de una subclase en mi proyecto, he aislado mi problema en el siguiente ejemplo. ¿Alguien sabe dónde me estoy equivocando? template<typename Subclass> class A { public: //Why doesn't it like this? ...

4 la respuesta

CRTP para evitar la sobrecarga de la función de miembro virtual

InCRTP para evitar el polimorfismo dinámico [https://stackoverflow.com/questions/262254/c-crtp-to-avoid-dynamic-polymorphism] , se propone la siguiente solución para evitar la sobrecarga de las funciones de miembros virtuales e imponer una ...

3 la respuesta

C ++ CRTP y acceder a los typedefs anidados derivados de base

editar Pondré un enlace github aquí cuando termine de alterar mi diseño para cualquier persona interesada. Antecedente Estoy reemplazando unaboost::intrusive, intrusive_set, con mi propia implementación como conjunto intrusivo compilado de 64 ...

4 la respuesta

Restricciones de parámetros de tipo reflexivo: X <T> donde T: X <T> - ¿alguna alternativa más simple?

Cada cierto tiempo hago que una interfaz simple sea más complicada al agregarle una restricción de parámetro de tipo autorreferenciada ("reflexiva"). Por ejemplo, podría convertir esto: interface ICloneable { ICloneable Clone(); } class Sheep : ...

2 la respuesta

CRTP: Problema dependiente del compilador con Expression Template

Incurrí en un problema dependiente del compilador con el siguiente código (almacenado en crtp.cc): #include <vector> #include <cassert> #include <iostream> template < class Derived > class AlgebraicVectorExpression { public: ...