Opened 9 years ago

Closed 8 years ago

#9024 closed Feature Requests (invalid)

boost_asio_handler_invoke_helpers and family should not be in detail

Reported by: vinnie.falco@… Owned by: chris_kohlhoff
Milestone: To Be Determined Component: asio
Version: Boost 1.54.0 Severity: Problem
Keywords: Cc:

Description

Currently these important namespaces:

boost_asio_handler_invoke_helpers
boost_asio_handler_alloc_helpers
boost_asio_handler_cont_helpers

While located in the global namespace (for reasons explained in the corresponding header file), have include files that are located in boost/asio/detail. In theory, users should not rely on these routines because they are in a detail header.

In practice however, it is impossible for a user to create a generic wrapper for an asio handler that obeys the same execution and safety guarantees of the original handler without having access to the helpers.

I propose that these three headers be moved to boost/asio and made part of the official asio API:

boost/asio/detail/handler_alloc_helpers.hpp

boost/asio/detail/handler_cont_helpers.hpp

boost/asio/detail/handler_invoke_helpers.hpp

Change History (1)

comment:1 by chris_kohlhoff, 8 years ago

Resolution: invalid
Status: newclosed

As with #9745, I'm having trouble understanding the "impossible" part :) Please supply a use case and example.

Please note that the global namespace was a side effect of some compilers that didn't implement ADL correctly (possibly Borland? I can't remember) and my incomplete understanding of ADL at the time. I don't believe it is required any more.

Note: See TracTickets for help on using tickets.