PIVariantSimple freertos fix
This commit is contained in:
@@ -27,7 +27,9 @@
|
||||
|
||||
#include "pistring.h"
|
||||
#include <typeinfo>
|
||||
|
||||
#ifdef PIP_FREERTOS
|
||||
#include "pivariant.h"
|
||||
#endif
|
||||
|
||||
class __VariantFunctionsBase__ {
|
||||
public:
|
||||
@@ -57,7 +59,11 @@ template<typename T>
|
||||
class __VariantFunctions__/*<T, typename std::enable_if< std::is_assignable<T&, const T&>::value>::type>*/: public __VariantFunctionsBase__ {
|
||||
public:
|
||||
__VariantFunctionsBase__ * instance() final {static __VariantFunctions__<T> 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")*/;}
|
||||
|
||||
Reference in New Issue
Block a user