View source code
							
							
						
								Display the source code in std/experimental/allocator/mallocator.d from which this
								page was generated on github.
							
						
							Report a bug
							
						
								If you spot a problem with this page, click here to create a
								Bugzilla issue.
							
						
							
								Improve this page
							
							
					
								Quickly fork, edit online, and submit a pull request for this page.
								Requires a signed-in GitHub account. This works well for small changes.
								If you'd like to make larger changes you may want to consider using
								local clone.
							
						Struct std.experimental.allocator.mallocator.AlignedMallocator
Aligned allocator using OS-specific primitives, under a uniform API.
						
				struct AlignedMallocator
				;
						
					
				Fields
| Name | Type | Description | 
|---|---|---|
								instance
							 | 
							shared(AlignedMallocator) | Returns the global instance of this allocator type. The C heap allocator is
    thread-safe, therefore all of its methods and instance itself are
    shared.
 | 
						
Methods
| Name | Description | 
|---|---|
								
									alignedAllocate
								
								(bytes, a)
							 | 
							Uses    posix_memalign on Posix and
       __aligned_malloc on Windows.
 | 
						
								
									alignedReallocate
								
								(b, s, a)
							 | 
							Forwards to alignedReallocate(b, newSize, platformAlignment).
    Should be used with blocks obtained with allocate otherwise the custom
    alignment passed with alignedAllocate can be lost.
 | 
						
								
									allocate
								
								(bytes)
							 | 
							Forwards to alignedAllocate(bytes, platformAlignment).
 | 
						
								
									deallocate
								
								(b)
							 | 
							Calls free(b on Posix and
       __aligned_free(b on Windows.
 | 
						
								
									reallocate
								
								(b, newSize)
							 | 
							Forwards to alignedReallocate(b, newSize, platformAlignment).
    Should be used with blocks obtained with allocate otherwise the custom
    alignment passed with alignedAllocate can be lost.
 | 
						
Example
auto buffer = AlignedMallocator .instance .alignedAllocate(1024 * 1024 * 4,
    128);
scope(exit) AlignedMallocator .instance .deallocate(buffer);
//...
Authors
License
					Copyright © 1999-2024 by the D Language Foundation | Page generated by ddox.