22 lines
551 B
C++
22 lines
551 B
C++
#pragma once
|
|
|
|
template <typename T> constexpr T is_aligned(T value, T align_base)
|
|
{
|
|
return (value % align_base == 0);
|
|
}
|
|
|
|
template <typename T> constexpr T align_down(T value, T align_base)
|
|
{
|
|
return value - (value % align_base);
|
|
}
|
|
|
|
template <typename T> constexpr T align_up(T value, T align_base)
|
|
{
|
|
if (is_aligned(value, align_base)) return value;
|
|
return align_down(value, align_base) + align_base;
|
|
}
|
|
|
|
template <typename T> constexpr T get_blocks_from_size(T value, T block_size)
|
|
{
|
|
return (value + (block_size - 1)) / block_size;
|
|
} |