@@ -20,14 +20,11 @@ namespace network {
2020namespace uri {
2121namespace details {
2222template <
23- typename Uri,
2423 typename Map
2524 >
2625struct key_value_sequence
27- : spirit::qi::grammar<typename Uri ::const_iterator, Map()>
26+ : spirit::qi::grammar<uri ::const_iterator, Map()>
2827{
29- typedef typename Uri::const_iterator const_iterator;
30-
3128 key_value_sequence ()
3229 : key_value_sequence::base_type(query)
3330 {
@@ -37,79 +34,63 @@ struct key_value_sequence
3734 value = +spirit::qi::char_ (" a-zA-Z_0-9/%" );
3835 }
3936
40- spirit::qi::rule<const_iterator, Map()> query;
41- spirit::qi::rule<const_iterator, std::pair<typename Uri::string_type, typename Uri::string_type >()> pair;
42- spirit::qi::rule<const_iterator, typename Uri::string_type ()> key, value;
37+ spirit::qi::rule<uri:: const_iterator, Map()> query;
38+ spirit::qi::rule<uri:: const_iterator, std::pair<std::string, std::string >()> pair;
39+ spirit::qi::rule<uri:: const_iterator, typename std::string ()> key, value;
4340};
4441} // namespace details
4542
4643template <
47- class String ,
4844 class Map
4945 >
5046inline
51- Map &query_map (const basic_uri<String> &uri , Map &map) {
52- typename basic_uri<String> ::const_range_type range = uri .query_range ();
53- details::key_value_sequence<basic_uri<String>, Map> parser;
47+ Map &query_map (const uri &uri_ , Map &map) {
48+ uri ::const_range_type range = uri_ .query_range ();
49+ details::key_value_sequence<Map> parser;
5450 spirit::qi::parse (boost::begin (range), boost::end (range), parser, map);
5551 return map;
5652}
5753
58- template <
59- class String
60- >
61- String username (const basic_uri<String> &uri) {
62- typename basic_uri<String>::const_range_type user_info_range = uri.user_info_range ();
63- typename basic_uri<String>::const_iterator it (boost::begin (user_info_range)), end (boost::end (user_info_range));
54+ std::string username (const uri &uri_) {
55+ uri::const_range_type user_info_range = uri_.user_info_range ();
56+ uri::const_iterator it (boost::begin (user_info_range)), end (boost::end (user_info_range));
6457 for (; it != end; ++it) {
6558 if (*it == ' :' ) {
6659 break ;
6760 }
6861 }
69- return String (boost::begin (user_info_range), it);
62+ return std::string (boost::begin (user_info_range), it);
7063}
7164
72- template <
73- class String
74- >
75- String password (const basic_uri<String> &uri) {
76- typename basic_uri<String>::const_range_type user_info_range = uri.user_info_range ();
77- typename basic_uri<String>::const_iterator it (boost::begin (user_info_range)), end (boost::end (user_info_range));
65+ std::string password (const uri &uri_) {
66+ uri::const_range_type user_info_range = uri_.user_info_range ();
67+ uri::const_iterator it (boost::begin (user_info_range)), end (boost::end (user_info_range));
7868 for (; it != end; ++it) {
7969 if (*it == ' :' ) {
8070 ++it;
8171 break ;
8272 }
8373 }
84- return String (it, boost::end (user_info_range));
74+ return std::string (it, boost::end (user_info_range));
8575}
8676
87- template <
88- class String
89- >
90- String decoded_path (const basic_uri<String> &uri) {
91- typename basic_uri<String>::const_range_type path_range = uri.path_range ();
92- String decoded_path;
77+ std::string decoded_path (const uri &uri_) {
78+ uri::const_range_type path_range = uri_.path_range ();
79+ std::string decoded_path;
9380 decode (path_range, std::back_inserter (decoded_path));
9481 return decoded_path;
9582}
9683
97- template <
98- class String
99- >
100- String decoded_query (const basic_uri<String> &uri) {
101- typename basic_uri<String>::const_range_type query_range = uri.query_range ();
102- String decoded_query;
84+ std::string decoded_query (const uri &uri_) {
85+ uri::const_range_type query_range = uri_.query_range ();
86+ std::string decoded_query;
10387 decode (query_range, std::back_inserter (decoded_query));
10488 return decoded_query;
10589}
10690
107- template <
108- class String
109- >
110- String decoded_fragment (const basic_uri<String> &uri) {
111- typename basic_uri<String>::const_range_type fragment_range = uri.fragment_range ();
112- String decoded_fragment;
91+ std::string decoded_fragment (const uri &uri_) {
92+ uri::const_range_type fragment_range = uri_.fragment_range ();
93+ std::string decoded_fragment;
11394 decode (fragment_range, std::back_inserter (decoded_fragment));
11495 return decoded_fragment;
11596}
0 commit comments