forked from dolphin-emu/dolphin
		
	
		
			
				
	
	
		
			25 lines
		
	
	
		
			535 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			535 B
		
	
	
	
		
			C++
		
	
	
	
	
	
// This file is under the public domain.
 | 
						|
 | 
						|
#pragma once
 | 
						|
 | 
						|
#include <cstddef>
 | 
						|
#include <type_traits>
 | 
						|
 | 
						|
namespace Common
 | 
						|
{
 | 
						|
template <typename T>
 | 
						|
constexpr T AlignUp(T value, size_t size)
 | 
						|
{
 | 
						|
  static_assert(std::is_unsigned<T>(), "T must be an unsigned value.");
 | 
						|
  return static_cast<T>(value + (size - value % size) % size);
 | 
						|
}
 | 
						|
 | 
						|
template <typename T>
 | 
						|
constexpr T AlignDown(T value, size_t size)
 | 
						|
{
 | 
						|
  static_assert(std::is_unsigned<T>(), "T must be an unsigned value.");
 | 
						|
  return static_cast<T>(value - value % size);
 | 
						|
}
 | 
						|
 | 
						|
}  // namespace Common
 |