transformation.h
来自「The article describes a smart binding of」· C头文件 代码 · 共 50 行
H
50 行
#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 + =
减小字号Ctrl + -
显示快捷键?