File indexing completed on 2025-01-18 09:28:26
0001
0002
0003
0004
0005
0006
0007
0008 #ifndef BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_POSIX_HPP
0009 #define BOOST_ALIGN_DETAIL_ALIGNED_ALLOC_POSIX_HPP
0010
0011 #include <boost/align/detail/is_alignment.hpp>
0012 #include <boost/assert.hpp>
0013 #include <stdlib.h>
0014
0015 namespace boost {
0016 namespace alignment {
0017
0018 inline void*
0019 aligned_alloc(std::size_t alignment, std::size_t size) BOOST_NOEXCEPT
0020 {
0021 BOOST_ASSERT(detail::is_alignment(alignment));
0022 if (alignment < sizeof(void*)) {
0023 alignment = sizeof(void*);
0024 }
0025 void* p;
0026 if (::posix_memalign(&p, alignment, size) != 0) {
0027 p = 0;
0028 }
0029 return p;
0030 }
0031
0032 inline void
0033 aligned_free(void* ptr) BOOST_NOEXCEPT
0034 {
0035 ::free(ptr);
0036 }
0037
0038 }
0039 }
0040
0041 #endif