抛弃GdCpp*.dll/pdb历史重新建库。libhv和Sqlite的dll保留
This commit is contained in:
43
include/AlignSize.h
Normal file
43
include/AlignSize.h
Normal 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, int,int64_t,size_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, int,int64_t,size_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, int,int64_t,size_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, int,int64_t,size_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, int,int64_t,size_t,不能为负数
|
||||
template <typename T, typename T2>
|
||||
inline bool isAlign(const T &size, const T2 align) {
|
||||
return (size & T(align - 1))==0;
|
||||
}
|
||||
|
||||
#endif // ALIGNSIZE_H/
|
||||
Reference in New Issue
Block a user