Opened 9 years ago
Last modified 9 years ago
#8989 new Feature Requests
asio::ip namespace issues, and proposed solution
Reported by: | Owned by: | chris_kohlhoff | |
---|---|---|---|
Milestone: | To Be Determined | Component: | asio |
Version: | Boost 1.54.0 | Severity: | Problem |
Keywords: | Cc: |
Description
Given an InternetProtocol (usually ip::tcp), there's no generic way to get access to these classes:
class boost::asio::ip::address_v4; class boost::asio::ip::address_v6;
The reason is that boost::tcp::ip is a namespace and not a type.
I propose adding these to the requirements for InternetProtocol:
X::address_v4, return type boost::asio::ip::address_v4 X::address_v6, return type boost::asio::ip::address_v6
This would enable template classes parameterized on InternetProtocol to be able to choose an address type. For example:
template <typename InternetProtcol> struct Details { typedef InternetProtocol protocol_type; typedef protocol_type::endpoint endpoint_type; // Good, with this proposal typedef protocol_type::address_v4 address_v4; endpoint_type get_endpoint () { return endpoint_type (address_v4::any (), 1053); } // Bad, the only current solution typedef boost::asio::ip::address_v4 address_v4; endpoint_type get_endpoint_bad () { return endpoint_type (address_v4::any (), 1053); } };
Note:
See TracTickets
for help on using tickets.