📄 transformation.h
字号:
#ifndef _Transformation_H
#define _Transformation_H
#include "Reflection.h"
#include <string>
#include <vector>
using namespace std;
class TransformHelper;
class ITransform
{
public:
ITransform (const string& name);
virtual ~ITransform ();
virtual void UpdateField (IReflection* object, object_ptr& objectPtr) = 0;
virtual void ExchangeTemp (IReflection* object, void* value, object_ptr& objectPtr) = 0;
// Property
string& Name() { return name_; }
private:
string name_;
TransformHelper* transformHelper_;
};
template<typename T> void UpdateField (IReflection* object, object_ptr& objectPtr);
template<typename T> void ExchangeTemp (IReflection* theThis, void* value, object_ptr& objectPtr);
template<typename T>
class TransformBase : public ITransform
{
public:
TransformBase<T> () : ITransform(typeid(T).name()) {}
virtual void UpdateField(IReflection* object, object_ptr& objectPtr)
{
::UpdateField<T>(object,objectPtr);
}
virtual void ExchangeTemp(IReflection* object, void* value, object_ptr& objectPtr)
{
::ExchangeTemp<T>(object,value,objectPtr);
}
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -