Quiero verificar si una clase dada tiene solo lo siguiente: Miembros de datos no estáticos Constructor(es) (predeterminado o definido por el usuario) Destructor (predeterminado o definido por el usuario) Este tipo sería (al menos visualmente en cuanto a la declaración) idéntico a un tipo POD, excepto por el constructor y . . . Read more
Si tengo el siguiente código, que es una estructura con plantillas de valores: enum FakeEnum { FakeNone, Fake1, Fake2, Fake3, Fake4, Fake5, Fake6, Fake7, Fake8, Fake9, Fake10, Fake11, Fake12, Fake13, Fake14, Fake15, Fake16, Fake17, // … Fake100, }; template<fakeenum fe=””> struct FakeStruct { void FakeIt(); }; template<fakeenum fe=””> void FakeStruct<fe>::FakeIt() . . . Read more
Tengo bastantes plantillas que se ven así: template <int n=””> struct MyClass { Property p; MyClass<n -=”” 1=””> next; }; template <> struct MyClass<1> { Property p; }; Básicamente, MyClass contiene n propiedades. Me preguntaba si esto podría hacerse de una forma más elegante. Un ejemplo sería que solo quiero . . . Read more
He diseñado una clase de envoltorio más simple que añade una etiqueta a un objeto, con la intención de que sea convertible/reemplazable implícitamente por el objeto envuelto. #include <string> #include <type_traits> #include <utility> template < typename T, typename Key = std::string > class myTag{ T val; public: Key key; template . . . Read more
Quiero tener una clase que represente una unidad con algún tipo de dimensión. Esto debería expresar algo como 1,5m^2. Se debe permitir una multiplicación escalar con algún tipo y una unidad sin dimensión debería comportarse exactamente como el tipo subyacente. Aquí está mi solución: include template class Unit { public: . . . Read more