vSMC  v3.0.0
Scalable Monte Carlo
Classes | Macros | Typedefs | Functions
Aligned memory alignment

Memory allocation with alignment requirement. More...

Classes

class  vsmc::AlignedMemorySTD
 Aligned memory using std::malloc and std::free More...
 
class  vsmc::AlignedMemorySYS
 Aligned memory using native system aligned memory allocation. More...
 
class  vsmc::AlignedMemoryTBB
 Aligned memory using Intel TBB scalable_aligned_malloc and scalable_aligned_free. More...
 
class  vsmc::Allocator< T, Alignment, Memory >
 Aligned allocator. More...
 
class  vsmc::Allocator< T, Alignment, Memory >::rebind< U >
 
class  vsmc::Allocator< const void, Alignment, Memory >
 Aligned allocator specialization of const void More...
 
class  vsmc::Allocator< void, Alignment, Memory >
 Aligned allocator specialization of void More...
 
class  vsmc::Array< T, N, Alignment >
 std::array with proper alignment More...
 

Macros

#define VSMC_DEFINE_NEW_DELETE(Class)
 Define class member new and delete using AlignedMemory. More...
 

Typedefs

using vsmc::AlignedMemory = ::vsmc::AlignedMemoryTBB
 Default AlignedMemory type. More...
 
template<typename T , typename Alloc = Allocator<T>>
using vsmc::Vector = std::vector< T, Alloc >
 std::vector with Allocator as default allocator More...
 

Functions

template<typename T1 , typename T2 , std::size_t Alignment, typename Memory >
bool vsmc::operator!= (const Allocator< T1, Alignment, Memory > &, const Allocator< T2, Alignment, Memory > &)
 Comparision of two Allocator. More...
 
template<typename T1 , typename T2 , std::size_t Alignment, typename Memory >
bool vsmc::operator== (const Allocator< T1, Alignment, Memory > &, const Allocator< T2, Alignment, Memory > &)
 Comparision of two Allocator. More...
 

Detailed Description

Memory allocation with alignment requirement.

Macro Definition Documentation

#define VSMC_DEFINE_NEW_DELETE (   Class)

Define class member new and delete using AlignedMemory.

The behavior of the custom operator new is sligtly different than the standard ones. There will be no new handler called in the case of failure to allocate memroy. Another way to view this is that the class that uses these custom operator new has its own new handler which does exactly nothing.

Definition at line 90 of file aligned_memory.hpp.

Typedef Documentation

Default AlignedMemory type.

Definition at line 273 of file aligned_memory.hpp.

template<typename T , typename Alloc = Allocator<T>>
using vsmc::Vector = typedef std::vector<T, Alloc>

std::vector with Allocator as default allocator

Definition at line 459 of file aligned_memory.hpp.

Function Documentation

template<typename T1 , typename T2 , std::size_t Alignment, typename Memory >
bool vsmc::operator!= ( const Allocator< T1, Alignment, Memory > &  ,
const Allocator< T2, Alignment, Memory > &   
)
inline

Comparision of two Allocator.

Definition at line 433 of file aligned_memory.hpp.

template<typename T1 , typename T2 , std::size_t Alignment, typename Memory >
bool vsmc::operator== ( const Allocator< T1, Alignment, Memory > &  ,
const Allocator< T2, Alignment, Memory > &   
)
inline

Comparision of two Allocator.

Definition at line 424 of file aligned_memory.hpp.