抛弃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

43
include/AlignSize.h Normal file
View File

@@ -0,0 +1,43 @@
#ifndef ALIGNSIZE_H
#define ALIGNSIZE_H
#include "UserSuffix.h" // 用到Aligin的地方通常也会用到K/M/G尾缀
/// 将size向上对齐到algin不足的大小补齐。algin必须是2^n
/// T、T2可以为uint16_t, uint32_t intint64_tsize_t不能为负数
template <typename T, typename T2>
inline void AlignUp(T &size, const T2 align){
T odd = size & T(align-1);
size += (odd) ? (align-odd) : 0;
}
/// 返回size向上对齐到algin的数值不足的大小补齐。algin必须是2^n
/// T、T2可以为uint16_t, uint32_t intint64_tsize_t不能为负数
template <typename T, typename T2>
inline T getAlignUp(const T size, const T2 align) {
T odd = size & T(align - 1);
return size + ((odd) ? (align - odd) : 0);
}
/// 将size向下对齐到algin边界超出的余数去掉。algin必须是2^n
/// T、T2可以为uint16_t, uint32_t intint64_tsize_t不能为负数
template <typename T, typename T2>
inline void AlignDown(T &size, const T2 align) {
size -= size & T(align - 1);
}
/// 返回size向下对齐到algin的数值不足的大小补齐。algin必须是2^n
/// T、T2可以为uint16_t, uint32_t intint64_tsize_t不能为负数
template <typename T, typename T2>
inline T getAlignDown(const T size, const T2 align) {
return size - (size & T(align - 1));
}
/// 判断size是否对齐algin。algin必须是2^n
/// T、T2可以为uint16_t, uint32_t intint64_tsize_t不能为负数
template <typename T, typename T2>
inline bool isAlign(const T &size, const T2 align) {
return (size & T(align - 1))==0;
}
#endif // ALIGNSIZE_H/