Opened 21 years ago

Closed 19 years ago

#944 closed Feature Requests (Fixed)

smart_ptrs: Custom allocators.

Reported by: murrayc Owned by: Peter Dimov
Milestone: Component: smart_ptr
Version: None Severity:
Keywords: Cc:

Description

I'd like to use the shared_ptr smart pointer, but the
underlying types that I am using have their own
specific *_alloc() and *_drop() functions instead of
using new/delete.

If the smart_ptr template classes took an allocator
type as a template arg then we would just have to
define our own allocators for things like this. By
using a default allocator that used new/delete there
would be no impact on current code.
e.g.
template< typename T, typename
Tallocator=default_allocator<T>>
class shared_ptr {};

Maybe the default_allocator<> is a bit like
std::allocator<>, but I'm not sure about that.

This would reduce the code for a lot of C-API wrapper
projects.


Change History (3)

comment:1 by darinadler, 21 years ago

Logged In: YES 
user_id=243358

Peter's revised shared_ptr will have this feature.

comment:2 by nobody, 20 years ago

Logged In: NO 

I think that the concept "allocator" can be used not only for the smart_ptr templates. It should be used on every 
place where a template parameter can accept a pair of functions/methods that perform a resource allocation and 
release.
Other examples for this:
- create / destroy
- fopen / fclose
- login / logout
- lock / unlock (http://www.boost.org/libs/thread/doc/mutex_concept.html)

comment:3 by Peter Dimov, 19 years ago

Status: assignedclosed
Note: See TracTickets for help on using tickets.