All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
MemoryAlignment.h
1 #pragma once
2 
3 #include "Types.h"
4 
5 namespace Eegeo
6 {
8  {
9  public:
10 
11  inline static void* AlignDown(const void* _input, uint32_t _alignment)
12  {
13  return reinterpret_cast<uint8_t*>(reinterpret_cast<const uintptr_t>(_input) & ~static_cast<uintptr_t>(_alignment - 1));
14  }
15 
16  inline static void* AlignUp(const void* _input, uint32_t _alignment)
17  {
18  return AlignDown(reinterpret_cast<const uint8_t*>(_input) + _alignment - 1, _alignment);
19  }
20  };
21 };