using namespace B3D::Reflection; template ReflectionProperty::ReflectionProperty(std::string key, T * value, ReflectionType type, ReflectionDataTable * containerTable, void* extData = NULL, bool archivable = true, bool locked = false, bool propertyHidden = false) { this->value = value; this->type = type; this->containerTable = containerTable; this->locked = locked; this->archivable = archivable; this->propertyHidden = propertyHidden; this->extData = extData; containerTable->mapProperty(key, (ReflectionProperty*)this); } template ReflectionProperty::ReflectionProperty(std::string key, T value, ReflectionType type, ReflectionDataTable * containerTable, void* extData = NULL, bool archivable = true, bool locked = false, bool propertyHidden = false) { this->value = new T(value); this->type = type; this->containerTable = containerTable; this->locked = locked; this->archivable = archivable; this->propertyHidden = propertyHidden; this->extData = extData; containerTable->mapProperty(key, (ReflectionProperty*)this); } template ReflectionProperty::ReflectionProperty(void) { } template ReflectionProperty::~ReflectionProperty(void) { dispose(); } template void ReflectionProperty::dispose() { delete value; value = NULL; if(this->extData != NULL) { delete extData; extData = NULL; } }