25#if __has_include(<mm_malloc.h>)
27#elif __has_include(<malloc.h>)
30static __inline__
void *
__attribute__((__always_inline__, __nodebug__, __malloc__))
35 return malloc(__size);
58 std::random_device dev;
59 if (dev.entropy() > 0)
61 std::array<uint32, SFMT_N32> seed;
62 std::generate(seed.begin(), seed.end(), std::ref(dev));
64 sfmt_init_by_array(&
_state, seed.data(), seed.size());
72 return sfmt_genrand_uint32(&
_state);
75void* SFMTRand::operator
new(
size_t size, std::nothrow_t
const&)
77 return _mm_malloc(
size, 16);
80void SFMTRand::operator
delete(
void* ptr, std::nothrow_t
const&)
85void* SFMTRand::operator
new(
size_t size)
87 return _mm_malloc(
size, 16);
90void SFMTRand::operator
delete(
void* ptr)
95void* SFMTRand::operator
new[](
size_t size, std::nothrow_t
const&)
97 return _mm_malloc(
size, 16);
100void SFMTRand::operator
delete[](
void* ptr, std::nothrow_t
const&)
105void* SFMTRand::operator
new[](
size_t size)
107 return _mm_malloc(
size, 16);
110void SFMTRand::operator
delete[](
void* ptr)
static __inline__ void size_t __align
static __inline__ void * __attribute__((__always_inline__, __nodebug__, __malloc__)) _mm_malloc(size_t __size
constexpr std::size_t size()