📄 conversion.h
字号:
#ifndef _Conversion_H
#define _Conversion_H
#include "Reflection.h"
#include <string>
#include <vector>
using namespace std;
string Object2String (Double* object);
string Object2String (Int* object);
string Object2String (Long* object);
string Object2String (Bool* object);
string Object2String (String* object);
bool String2Object (Double* object, string& value);
bool String2Object (Int* object, string& value);
bool String2Object (Long* object, string& value);
bool String2Object (Bool* object, string& value);
bool String2Object (String* object, string& value);
class ConversionHelper;
class IConversion
{
public:
IConversion (const string& name);
virtual ~IConversion ();
virtual string Object2String (object_ptr& objectPtr) = 0;
virtual void String2Object (string& value, object_ptr& objectPtr) = 0;
// Property
string& Name() { return name_; }
private:
string name_;
ConversionHelper* conversionHelper_;
};
template<typename T>
class ConversionBase : public IConversion
{
public:
ConversionBase<T> () : IConversion(typeid(T).name()) {}
virtual string Object2String(object_ptr& objectPtr)
{
return ::Object2String(reinterpret_cast<T*>(objectPtr.value()));
}
virtual void String2Object (string& value, object_ptr& objectPtr)
{
::String2Object(reinterpret_cast<T*>(objectPtr.value()),value);
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -