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: | 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
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.