First
This commit is contained in:
@@ -0,0 +1,53 @@
|
||||
#pragma once
|
||||
|
||||
#include "tl/detail/prologue.h"
|
||||
#include "detail/internal_assert.h"
|
||||
|
||||
#include <type_traits>
|
||||
#include <cassert>
|
||||
#include <cstddef>
|
||||
#include <cstdlib>
|
||||
|
||||
#if defined(TL_PLATFORM_WINDOWS_FAMILY)
|
||||
#include <malloc.h>
|
||||
#endif
|
||||
|
||||
namespace tl
|
||||
{
|
||||
|
||||
inline bool is_aligned(void* ptr, size_t alignment)
|
||||
{
|
||||
size_t space = 1;
|
||||
return tl::align(alignment, space, ptr, space);
|
||||
}
|
||||
|
||||
inline void aligned_free16(void* p) noexcept
|
||||
{
|
||||
#if defined(TL_PLATFORM_WINDOWS_FAMILY)
|
||||
::_aligned_free(p);
|
||||
#else
|
||||
::free(p);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
inline void* aligned_alloc16(size_t size) noexcept
|
||||
{
|
||||
#if defined(TL_PLATFORM_WINDOWS_FAMILY)
|
||||
return ::_aligned_malloc(size, 16);
|
||||
#else
|
||||
return malloc(size);
|
||||
#endif
|
||||
}
|
||||
|
||||
inline void* aligned_realloc16(void* p, size_t new_size) noexcept
|
||||
{
|
||||
#if defined(TL_PLATFORM_WINDOWS_FAMILY)
|
||||
return ::_aligned_realloc(p, new_size, 16);
|
||||
#else
|
||||
return realloc(p, new_size);
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user