3 #ifndef __CDS_OS_WIN_ALLOC_ALIGNED_H
4 #define __CDS_OS_WIN_ALLOC_ALIGNED_H
9 namespace cds { namespace OS {
10 CDS_CXX11_INLINE_NAMESPACE namespace Win32 {
11 /// Allocates memory on a specified alignment boundary
12 static inline void * aligned_malloc(
13 size_t nSize, ///< Size of the requested memory allocation
14 size_t nAlignment ///< The alignment value, which must be an integer power of 2
17 return ::_aligned_malloc( nSize, nAlignment );
20 /// Frees a block of memory that was allocated with aligned_malloc.
21 static inline void aligned_free(
22 void * pBlock ///< A pointer to the memory block that was returned to the aligned_malloc function
25 ::_aligned_free( pBlock );
29 #ifndef CDS_CXX11_INLINE_NAMESPACE_SUPPORT
30 using Win32::aligned_malloc;
31 using Win32::aligned_free;
34 }} // namespace cds::OS
37 #endif // #ifndef __CDS_OS_WIN_ALLOC_ALIGNED_H