diff --git a/libs/main/core/pivariantsimple.h b/libs/main/core/pivariantsimple.h index 63130902..d5b27e5f 100644 --- a/libs/main/core/pivariantsimple.h +++ b/libs/main/core/pivariantsimple.h @@ -27,7 +27,9 @@ #include "pistring.h" #include - +#ifdef PIP_FREERTOS +#include "pivariant.h" +#endif class __VariantFunctionsBase__ { public: @@ -57,7 +59,11 @@ template class __VariantFunctions__/*::value>::type>*/: public __VariantFunctionsBase__ { public: __VariantFunctionsBase__ * instance() final {static __VariantFunctions__ ret; return &ret;} +#ifdef PIP_FREERTOS + PIString typeName() const final {static PIString ret(PIVariant(T()).typeName()); return ret;} +#else PIString typeName() const final {static PIString ret(typeid(T).name()); return ret;} +#endif uint hash() const final {static uint ret = typeName().hash(); return ret;} void newT(void *& ptr, const void * value) final {ptr = (void*)(new T(*(const T*)value)); /*printf(" * new\n")*/;} void newNullT(void *& ptr) final {ptr = (void*)(new T());/* printf(" * new null\n")*/;}