I want objects managed by a shared_ptr to be allocated from a pool, say Boost\'s Pool interface, how can this be achieved?
Evident solution:
Create your own make_shared function and enforce the use of this method to created shared_ptr. Those who derive from The Rule shall be punished.
Note:
There seems to be a confusion with the role of the shared_ptr. Its role is to manage memory than YOU have allocated, however to do so it requires some allocation of its own (counter and deleter), thus you may pass it an allocator for those.