/usr/include/c++/4.4.4/ext
NameSizeModeActions
pb_ds/-0755rm
algorithm172750644editdlrm
array_allocator.h45330644editdlrm
atomicity.h34190644editdlrm
bitmap_allocator.h318490644editdlrm
cast.h41890644editdlrm
codecvt_specializations.h162000644editdlrm
concurrence.h71270644editdlrm
debug_allocator.h40480644editdlrm
enc_filebuf.h21950644editdlrm
extptr_allocator.h55790644editdlrm
functional142600644editdlrm
hash_map176210644editdlrm
hash_set170410644editdlrm
iterator39790644editdlrm
malloc_allocator.h39650644editdlrm
memory71240644editdlrm
mt_allocator.h224570644editdlrm
new_allocator.h38390644editdlrm
numeric46050644editdlrm
numeric_traits.h45060644editdlrm
pod_char_traits.h50880644editdlrm
pointer.h186300644editdlrm
pool_allocator.h79100644editdlrm
rb_tree32590644editdlrm
rc_string_base.h234260644editdlrm
rope873430644editdlrm
ropeimpl.h483440644editdlrm
slist294950644editdlrm
sso_string_base.h161300644editdlrm
stdio_filebuf.h53180644editdlrm
stdio_sync_filebuf.h76430644editdlrm
string_conversions.h29470644editdlrm
throw_allocator.h113600644editdlrm
typelist.h153480644editdlrm
type_traits.h53700644editdlrm
vstring.h977710644editdlrm
vstring.tcc234100644editdlrm
vstring_fwd.h32160644editdlrm
vstring_util.h58020644editdlrm
Edit: /usr/include/c++/4.4.4/ext/malloc_allocator.h (3965B)
// Allocator that wraps "C" malloc -*- C++ -*- // Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 // Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the // terms of the GNU General Public License as published by the // Free Software Foundation; either version 3, or (at your option) // any later version. // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // Under Section 7 of GPL version 3, you are granted additional // permissions described in the GCC Runtime Library Exception, version // 3.1, as published by the Free Software Foundation. // You should have received a copy of the GNU General Public License and // a copy of the GCC Runtime Library Exception along with this program; // see the files COPYING3 and COPYING.RUNTIME respectively. If not, see // . /** @file ext/malloc_allocator.h * This file is a GNU extension to the Standard C++ Library. */ #ifndef _MALLOC_ALLOCATOR_H #define _MALLOC_ALLOCATOR_H 1 #include #include #include #include _GLIBCXX_BEGIN_NAMESPACE(__gnu_cxx) using std::size_t; using std::ptrdiff_t; /** * @brief An allocator that uses malloc. * @ingroup allocators * * This is precisely the allocator defined in the C++ Standard. * - all allocation calls malloc * - all deallocation calls free */ template class malloc_allocator { public: typedef size_t size_type; typedef ptrdiff_t difference_type; typedef _Tp* pointer; typedef const _Tp* const_pointer; typedef _Tp& reference; typedef const _Tp& const_reference; typedef _Tp value_type; template struct rebind { typedef malloc_allocator<_Tp1> other; }; malloc_allocator() throw() { } malloc_allocator(const malloc_allocator&) throw() { } template malloc_allocator(const malloc_allocator<_Tp1>&) throw() { } ~malloc_allocator() throw() { } pointer address(reference __x) const { return &__x; } const_pointer address(const_reference __x) const { return &__x; } // NB: __n is permitted to be 0. The C++ standard says nothing // about what the return value is when __n == 0. pointer allocate(size_type __n, const void* = 0) { if (__builtin_expect(__n > this->max_size(), false)) std::__throw_bad_alloc(); pointer __ret = static_cast<_Tp*>(std::malloc(__n * sizeof(_Tp))); if (!__ret) std::__throw_bad_alloc(); return __ret; } // __p is not permitted to be a null pointer. void deallocate(pointer __p, size_type) { std::free(static_cast(__p)); } size_type max_size() const throw() { return size_t(-1) / sizeof(_Tp); } // _GLIBCXX_RESOLVE_LIB_DEFECTS // 402. wrong new expression in [some_] allocator::construct void construct(pointer __p, const _Tp& __val) { ::new((void *)__p) value_type(__val); } #ifdef __GXX_EXPERIMENTAL_CXX0X__ template void construct(pointer __p, _Args&&... __args) { ::new((void *)__p) _Tp(std::forward<_Args>(__args)...); } #endif void destroy(pointer __p) { __p->~_Tp(); } }; template inline bool operator==(const malloc_allocator<_Tp>&, const malloc_allocator<_Tp>&) { return true; } template inline bool operator!=(const malloc_allocator<_Tp>&, const malloc_allocator<_Tp>&) { return false; } _GLIBCXX_END_NAMESPACE #endif