boost 对齐

来源:互联网 发布:java 反射调用set方法 编辑:程序博客网 时间:2024/05/19 14:38

1. 对齐到alignment的倍数,返回不小于value的最小值,要求alignment必须是2的倍数

std::size_t align_up(std::size_t value, std::size_t alignment)
{
return (value + alignment - 1) & ~(alignment - 1);
}


2. 对齐到alignment的倍数,返回不大于value的最大值,要求alignment必须是2的倍数

 inline std::size_t align_down(std::size_t value, std::size_t alignment) 
{
    return value & ~(alignment - 1);
}