Просмотр исходного кода

common: alignment: Add a helper function for generic alignment checking.

bunnei 6 лет назад
Родитель
Сommit
b838e58d63
1 измененных файлов с 7 добавлено и 0 удалено
  1. 7 0
      src/common/alignment.h

+ 7 - 0
src/common/alignment.h

@@ -38,6 +38,13 @@ constexpr bool IsWordAligned(T value) {
     return (value & 0b11) == 0;
 }
 
+template <typename T>
+constexpr bool IsAligned(T value, std::size_t alignment) {
+    using U = typename std::make_unsigned<T>::type;
+    const U mask = static_cast<U>(alignment - 1);
+    return (value & mask) == 0;
+}
+
 template <typename T, std::size_t Align = 16>
 class AlignmentAllocator {
 public: