Boost C++ Libraries of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.


Default allocation function for handlers.

void * asio_handler_allocate(
    std::size_t size,
    ... );

Asynchronous operations may need to allocate temporary objects. Since asynchronous operations have a handler function object, these temporary objects can be said to be associated with the handler.

Implement asio_handler_allocate and asio_handler_deallocate for your own handlers to provide custom allocation for these temporary objects.

This default implementation is simply:

return ::operator new(size);

All temporary objects associated with a handler will be deallocated before the upcall to the handler is performed. This allows the same memory to be reused for a subsequent asynchronous operation initiated by the handler.

class my_handler;

void* asio_handler_allocate(std::size_t size, my_handler* context)
  return ::operator new(size);

void asio_handler_deallocate(void* pointer, std::size_t size,
    my_handler* context)
  ::operator delete(pointer);

Header: boost/asio/handler_alloc_hook.hpp

Convenience header: boost/asio.hpp