📄 dynamicanyholder.h
字号:
~DynamicAnyHolderImpl()
{
}
const std::type_info& type() const
{
return typeid(Int64);
}
void convert(Int8& val) const
{
convertToSmaller(_val, val);
}
void convert(Int16& val) const
{
convertToSmaller(_val, val);
}
void convert(Int32& val) const
{
convertToSmaller(_val, val);
}
void convert(Int64& val) const
{
val = _val;
}
void convert(UInt8& val) const
{
convertSignedToUnsigned(_val, val);
}
void convert(UInt16& val) const
{
convertSignedToUnsigned(_val, val);
}
void convert(UInt32& val) const
{
convertSignedToUnsigned(_val, val);
}
void convert(UInt64& val) const
{
convertSignedToUnsigned(_val, val);
}
void convert(bool& val) const
{
val = (_val != 0);
}
void convert(float& val) const
{
val = static_cast<float>(_val);
}
void convert(double& val) const
{
val = static_cast<double>(_val);
}
void convert(char& val) const
{
UInt8 tmp;
convert(tmp);
val = static_cast<char>(tmp);
}
void convert(std::string& val) const
{
val = NumberFormatter::format(_val);
}
DynamicAnyHolder* clone() const
{
return new DynamicAnyHolderImpl(_val);
}
const Int64& value() const
{
return _val;
}
private:
Int64 _val;
};
template <>
class DynamicAnyHolderImpl<UInt8>: public DynamicAnyHolder
{
public:
DynamicAnyHolderImpl(UInt8 val): _val(val)
{
}
~DynamicAnyHolderImpl()
{
}
const std::type_info& type() const
{
return typeid(UInt8);
}
void convert(Int8& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int16& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int32& val) const
{
val = static_cast<Int32>(_val);
}
void convert(Int64& val) const
{
val = static_cast<Int64>(_val);
}
void convert(UInt8& val) const
{
val = _val;
}
void convert(UInt16& val) const
{
val = _val;
}
void convert(UInt32& val) const
{
val = _val;
}
void convert(UInt64& val) const
{
val = _val;
}
void convert(bool& val) const
{
val = (_val != 0);
}
void convert(float& val) const
{
val = static_cast<float>(_val);
}
void convert(double& val) const
{
val = static_cast<double>(_val);
}
void convert(char& val) const
{
UInt8 tmp;
convert(tmp);
val = static_cast<char>(tmp);
}
void convert(std::string& val) const
{
val = NumberFormatter::format(_val);
}
DynamicAnyHolder* clone() const
{
return new DynamicAnyHolderImpl(_val);
}
const UInt8& value() const
{
return _val;
}
private:
UInt8 _val;
};
template <>
class DynamicAnyHolderImpl<UInt16>: public DynamicAnyHolder
{
public:
DynamicAnyHolderImpl(UInt16 val): _val(val)
{
}
~DynamicAnyHolderImpl()
{
}
const std::type_info& type() const
{
return typeid(UInt16);
}
void convert(Int8& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int16& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int32& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int64& val) const
{
val = static_cast<Int64>(_val);
}
void convert(UInt8& val) const
{
convertToSmallerUnsigned(_val, val);
}
void convert(UInt16& val) const
{
val = _val;
}
void convert(UInt32& val) const
{
val = _val;
}
void convert(UInt64& val) const
{
val = _val;
}
void convert(bool& val) const
{
val = (_val != 0);
}
void convert(float& val) const
{
val = static_cast<float>(_val);
}
void convert(double& val) const
{
val = static_cast<double>(_val);
}
void convert(char& val) const
{
UInt8 tmp;
convert(tmp);
val = static_cast<char>(tmp);
}
void convert(std::string& val) const
{
val = NumberFormatter::format(_val);
}
DynamicAnyHolder* clone() const
{
return new DynamicAnyHolderImpl(_val);
}
const UInt16& value() const
{
return _val;
}
private:
UInt16 _val;
};
template <>
class DynamicAnyHolderImpl<UInt32>: public DynamicAnyHolder
{
public:
DynamicAnyHolderImpl(UInt32 val): _val(val)
{
}
~DynamicAnyHolderImpl()
{
}
const std::type_info& type() const
{
return typeid(UInt32);
}
void convert(Int8& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int16& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int32& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int64& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(UInt8& val) const
{
convertToSmallerUnsigned(_val, val);
}
void convert(UInt16& val) const
{
convertToSmallerUnsigned(_val, val);
}
void convert(UInt32& val) const
{
val = _val;
}
void convert(UInt64& val) const
{
val = _val;
}
void convert(bool& val) const
{
val = (_val != 0);
}
void convert(float& val) const
{
val = static_cast<float>(_val);
}
void convert(double& val) const
{
val = static_cast<double>(_val);
}
void convert(char& val) const
{
UInt8 tmp;
convert(tmp);
val = static_cast<char>(tmp);
}
void convert(std::string& val) const
{
val = NumberFormatter::format(_val);
}
DynamicAnyHolder* clone() const
{
return new DynamicAnyHolderImpl(_val);
}
const UInt32& value() const
{
return _val;
}
private:
UInt32 _val;
};
template <>
class DynamicAnyHolderImpl<UInt64>: public DynamicAnyHolder
{
public:
DynamicAnyHolderImpl(UInt64 val): _val(val)
{
}
~DynamicAnyHolderImpl()
{
}
const std::type_info& type() const
{
return typeid(UInt64);
}
void convert(Int8& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int16& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int32& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(Int64& val) const
{
convertUnsignedToSigned(_val, val);
}
void convert(UInt8& val) const
{
convertToSmallerUnsigned(_val, val);
}
void convert(UInt16& val) const
{
convertToSmallerUnsigned(_val, val);
}
void convert(UInt32& val) const
{
convertToSmallerUnsigned(_val, val);
}
void convert(UInt64& val) const
{
val = _val;
}
void convert(bool& val) const
{
val = (_val != 0);
}
void convert(float& val) const
{
val = static_cast<float>(_val);
}
void convert(double& val) const
{
val = static_cast<double>(_val);
}
void convert(char& val) const
{
UInt8 tmp;
convert(tmp);
val = static_cast<char>(tmp);
}
void convert(std::string& val) const
{
val = NumberFormatter::format(_val);
}
DynamicAnyHolder* clone() const
{
return new DynamicAnyHolderImpl(_val);
}
const UInt64& value() const
{
return _val;
}
private:
UInt64 _val;
};
template <>
class DynamicAnyHolderImpl<bool>: public DynamicAnyHolder
{
public:
DynamicAnyHolderImpl(bool val): _val(val)
{
}
~DynamicAnyHolderImpl()
{
}
const std::type_info& type() const
{
return typeid(bool);
}
void convert(Int8& val) const
{
val = static_cast<Int8>(_val ? 1 : 0);
}
void convert(Int16& val) const
{
val = static_cast<Int16>(_val ? 1 : 0);
}
void convert(Int32& val) const
{
val = static_cast<Int32>(_val ? 1 : 0);
}
void convert(Int64& val) const
{
val = static_cast<Int64>(_val ? 1 : 0);
}
void convert(UInt8& val) const
{
val = static_cast<UInt8>(_val ? 1 : 0);
}
void convert(UInt16& val) const
{
val = static_cast<UInt16>(_val ? 1 : 0);
}
void convert(UInt32& val) const
{
val = static_cast<UInt32>(_val ? 1 : 0);
}
void convert(UInt64& val) const
{
val = static_cast<UInt64>(_val ? 1 : 0);
}
void convert(bool& val) const
{
val = _val;
}
void convert(float& val) const
{
val = (_val ? 1.0f : 0.0f);
}
void convert(double& val) const
{
val = (_val ? 1.0 : 0.0);
}
void convert(char& val) const
{
val = static_cast<char>(_val ? 1 : 0);
}
void convert(std::string& val) const
{
val = (_val ? "true" : "false");
}
DynamicAnyHolder* clone() const
{
return new DynamicAnyHolderImpl(_val);
}
const bool& value() const
{
return _val;
}
private:
bool _val;
};
template <>
class DynamicAnyHolderImpl<float>: public DynamicAnyHolder
{
public:
DynamicAnyHolderImpl(float val): _val(val)
{
}
~DynamicAnyHolderImpl()
{
}
const std::type_info& type() const
{
return typeid(float);
}
void convert(Int8& val) const
{
convertToSmaller(_val, val);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -