PIVariantSimple freertos fix
This commit is contained in:
@@ -27,7 +27,9 @@
|
|||||||
|
|
||||||
#include "pistring.h"
|
#include "pistring.h"
|
||||||
#include <typeinfo>
|
#include <typeinfo>
|
||||||
|
#ifdef PIP_FREERTOS
|
||||||
|
#include "pivariant.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
class __VariantFunctionsBase__ {
|
class __VariantFunctionsBase__ {
|
||||||
public:
|
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__ {
|
class __VariantFunctions__/*<T, typename std::enable_if< std::is_assignable<T&, const T&>::value>::type>*/: public __VariantFunctionsBase__ {
|
||||||
public:
|
public:
|
||||||
__VariantFunctionsBase__ * instance() final {static __VariantFunctions__<T> ret; return &ret;}
|
__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;}
|
PIString typeName() const final {static PIString ret(typeid(T).name()); return ret;}
|
||||||
|
#endif
|
||||||
uint hash() const final {static uint ret = typeName().hash(); return ret;}
|
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 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")*/;}
|
void newNullT(void *& ptr) final {ptr = (void*)(new T());/* printf(" * new null\n")*/;}
|
||||||
|
|||||||
Reference in New Issue
Block a user