抛弃GdCpp*.dll/pdb历史重新建库。libhv和Sqlite的dll保留

This commit is contained in:
Zhang Jianjun
2026-02-02 16:09:02 +08:00
parent f148ca49e3
commit 4a2a284ac0
292 changed files with 350450 additions and 0 deletions

View File

@@ -0,0 +1,70 @@
#ifndef _PARAHELPER_CORE_H
#define _PARAHELPER_CORE_H
/// \brief 定义整形、浮点型参数的缺省值和取值范围类型T可以为8/16/32/64位的有符号或无符号数、float/double。
template <typename T>
struct sParaRange
{
/// 默认构造后不能直接使用必须正确设置Def/Min/Max参数才能使用
sParaRange() = default;
/// 带所有参数测构造函数。当所有参数都是常数或constexpr时构造的实例可以是constexpr
constexpr sParaRange(const T &def, const T & min, const T & max, const T& step=1, int dec=2)
: Def(def), Min(min), Max(max), Step(step)
, Decimal(dec)
{
}
/// 必须设的参数:缺省值, 最小值, 最大值。默认构造为0是没法使用的
T Def=0, Min=0, Max=0;
/// 可选设置的参数在UI控件中调整参数的步进值默认为1
T Step=1;
/// 小数位数仅用于float/double浮点型数据整形数据忽略此项
int Decimal=2;
/// 判断输入参数是否在[Min, Max]范围内
bool inRange(const T & val) const {
return (val>=Min && val <= Max);
}
/// @brief 校验参数如果小于Min设置为Min大于Max设置为Max
bool verify(T& val) const {
if (val < Min) { val = Min; return false; }
else if (val > Max) { val = Max; return false; }
else return true;
}
/// @brief 校验参数如果小于Min设置为Min大于Max设置为Max
/// @param err 误差值,多用于浮点数比较
bool verify(T& val, const T err) const {
if (val < Min-err) { val = Min; return false; }
else if (val > Max+err) { val = Max; return false; }
else return true;
}
/// @brief 校验参数,如果超出范围,设置为缺省值
bool verifyToDefault(T& val) const{
if (val <Min || val > Max) { val = Def; return false;}
else return true;
}
/// @brief 校验参数,如果超出范围,设置为缺省值
bool verifyToDefault(T& val, const T err) const {
if (val <Min-err || val > Max+err) { val = Def; return false; }
else return true;
}
sParaRange operator+(T d) const
{
return sParaRange(Def + d, Min + d, Max + d, Step, Decimal);
}
sParaRange operator-(T d) const
{
return sParaRange(Def - d, Min - d, Max - d, Step, Decimal);
}
};
#endif