pma pma::AlignedMemoryResource pma::ArenaMemoryResource pma::DefaultInstanceCreator pma::DefaultInstanceCreator< dna::BinaryStreamReader > pma::DefaultInstanceCreator< dna::BinaryStreamWriter > pma::DefaultInstanceCreator< dna::JSONStreamReader > pma::DefaultInstanceCreator< dna::JSONStreamWriter > pma::DefaultInstanceCreator< dnac::DNACalibDNAReader > pma::DefaultInstanceCreator< trio::FileStream > pma::DefaultInstanceCreator< trio::MemoryMappedFileStream > pma::DefaultInstanceCreator< trio::MemoryStream > pma::DefaultInstanceDestroyer pma::DefaultInstanceDestroyer< dna::BinaryStreamReader > pma::DefaultInstanceDestroyer< dna::BinaryStreamWriter > pma::DefaultInstanceDestroyer< dna::JSONStreamReader > pma::DefaultInstanceDestroyer< dna::JSONStreamWriter > pma::DefaultInstanceDestroyer< dnac::DNACalibDNAReader > pma::DefaultInstanceDestroyer< trio::FileStream > pma::DefaultInstanceDestroyer< trio::MemoryMappedFileStream > pma::DefaultInstanceDestroyer< trio::MemoryStream > pma::DefaultMemoryResource pma::Delete pma::Delete< T[]> pma::FactoryCreate pma::FactoryDestroy pma::MemoryResource pma::New pma::New< T[]> pma::PolyAllocator pma::ScopedPtr pma::impl typename T typename Allocator PolyAllocator<T> std::basic_string< T, std::char_traits< T >, Allocator > using pma::String = typedef std::basic_string<T, std::char_traits<T>, Allocator> String pma::String typename T typename Allocator PolyAllocator<T> std::vector< T, Allocator > using pma::Vector = typedef std::vector<T, Allocator> Vector pma::Vector typename T typename Allocator PolyAllocator<Vector<T> > Vector< Vector< T >, Allocator > using pma::Matrix = typedef Vector<Vector<T>, Allocator> Matrix pma::Matrix typename T typename Allocator PolyAllocator<T> std::list< T, Allocator > using pma::List = typedef std::list<T, Allocator> List pma::List typename T typename Allocator PolyAllocator<T> std::set< T, std::less< T >, Allocator > using pma::Set = typedef std::set<T, std::less<T>, Allocator> Set pma::Set typename T typename Allocator PolyAllocator<T> std::unordered_set< T, std::hash< T >, std::equal_to< T >, Allocator > using pma::UnorderedSet = typedef std::unordered_set<T, std::hash<T>, std::equal_to<T>, Allocator> UnorderedSet pma::UnorderedSet typename K typename V typename Allocator PolyAllocator<std::pair<const K, V> > std::map< K, V, std::less< K >, Allocator > using pma::Map = typedef std::map<K, V, std::less<K>, Allocator> Map pma::Map typename K typename V typename Allocator PolyAllocator<std::pair<const K, V> > std::unordered_map< K, V, std::hash< K >, std::equal_to< K >, Allocator > using pma::UnorderedMap = typedef std::unordered_map<K, V, std::hash<K>, std::equal_to<K>, Allocator> UnorderedMap pma::UnorderedMap class TTarget class TBase TTarget impl::ManagedInstance< std::unique_ptr< TBase, std::function< void(TBase *)> >, TTarget, TBase > using pma::UniqueInstance = typedef impl::ManagedInstance<std::unique_ptr<TBase, std::function<void (TBase*)> >, TTarget, TBase> UniqueInstance pma::UniqueInstance class TTarget class TBase TTarget impl::ManagedInstance< std::shared_ptr< TBase >, TTarget, TBase > using pma::SharedInstance = typedef impl::ManagedInstance<std::shared_ptr<TBase>, TTarget, TBase> SharedInstance pma::SharedInstance typename T std::size_t TAlignment TAlignment class TDefaultMemoryResource typename U std::size_t UAlignment UAlignment class UDefaultMemoryResource bool bool pma::operator== (const PolyAllocator< T, TAlignment, TDefaultMemoryResource > &lhs, const PolyAllocator< U, UAlignment, UDefaultMemoryResource > &rhs) operator== pma::operator== const PolyAllocator< T, TAlignment, TDefaultMemoryResource > & lhs const PolyAllocator< U, UAlignment, UDefaultMemoryResource > & rhs typename T std::size_t TAlignment TAlignment class TDefaultMemoryResource typename U std::size_t UAlignment UAlignment class UDefaultMemoryResource bool bool pma::operator!= (const PolyAllocator< T, TAlignment, TDefaultMemoryResource > &lhs, const PolyAllocator< U, UAlignment, UDefaultMemoryResource > &rhs) operator!= pma::operator!= const PolyAllocator< T, TAlignment, TDefaultMemoryResource > & lhs const PolyAllocator< U, UAlignment, UDefaultMemoryResource > & rhs class T class TCreator class TDestroyer typename ... Args Args typename Base typename std::remove_pointer < decltype(TCreator{} (std::declval<Args>()...)) > ::type ScopedPtr< Base, TDestroyer > ScopedPtr< Base, TDestroyer > pma::makeScoped (Args &&... args) makeScoped pma::makeScoped Args &&... args Syntactic sugar for creating instances wrapped in a ScopedPtr. The default behavior is to rely on the New / Delete pair of lifetime managers, because it's sensible to do so. However, because a significant portion of our abstractions follow the convention of exposing a create / destroy pair of factory functions (where create always returns a raw pointer), there also exists a dedicated FactoryCreate / FactoryDestroy pair of lifetime managers. To change the default behavior in order to utilize a specific lifetime manager pair, specialize the DefaultInstanceCreator and DefaultInstanceDestroyer traits for the types that need different handling. Alternately, it's also possible to pass a custom creator / destroyer on each invocation. class T template< class ... > class TCreatorTemplate TCreatorTemplate template< class ... > class TDestroyerTemplate TDestroyerTemplate typename ... Args Args ScopedPtr< T, TDestroyerTemplate< T > > ScopedPtr< T, TDestroyerTemplate< T > > pma::makeScoped (Args &&... args) makeScoped pma::makeScoped Args &&... args class T typename ... Args Args ScopedPtr< T, typename DefaultInstanceDestroyer< T >::type > ScopedPtr< T, typename DefaultInstanceDestroyer< T >::type > pma::makeScoped (Args &&... args) makeScoped pma::makeScoped Args &&... args std::uintptr_t std::uintptr_t pma::alignAddress (std::uintptr_t address, std::size_t alignment) alignAddress pma::alignAddress std::uintptr_t address std::size_t alignment alignPointer typename T T * T * pma::alignPointer (T *ptr, std::size_t alignment) alignPointer pma::alignPointer T * ptr std::size_t alignment alignAddress pma::ArenaMemoryResource::Impl::allocate