@@ -46,7 +46,7 @@ class BOOST_URI_DECL uri {
4646// parse();
4747// }
4848
49- uri (const string_type &uri ) : uri_(uri ), is_valid_(false ) {parse (); }
49+ uri (const string_type &str ) : uri_(str ), is_valid_(false ) {parse (); }
5050
5151template <class FwdIter >
5252uri (const FwdIter &first,const FwdIter &last)
@@ -109,8 +109,9 @@ class BOOST_URI_DECL uri {
109109 }
110110
111111// hackfix by Simon Haegler, Esri R&D Zurich
112- // this workaround is needed to avoid running into the "incompatible string iterator" assertion
113- // triggered by the default-constructed string iterators employed by cpp-netlib (see uri.ipp qi::rule declarations)
112+ // this workaround is needed to avoid running into the "incompatible string
113+ // iterator" assertion triggered by the default-constructed string iterators
114+ // employed by cpp-netlib (see uri.ipp qi::rule declarations)
114115#if defined(_MSC_VER) && defined(_DEBUG)
115116#define CATCH_EMPTY_ITERATOR_RANGE if (range.begin()._Getcont() ==0 || range.end()._Getcont() ==0 ) {return string_type (); }
116117#else
@@ -120,7 +121,7 @@ class BOOST_URI_DECL uri {
120121 string_typescheme ()const {
121122 const_range_type range =scheme_range ();
122123 CATCH_EMPTY_ITERATOR_RANGE
123- return range ?string_type (boost::begin (range),boost::end (range))
124+ return range ?string_type (boost::begin (range),boost::end (range))
124125 :string_type ();
125126 }
126127
@@ -166,6 +167,10 @@ class BOOST_URI_DECL uri {
166167 :string_type ();
167168 }
168169
170+ #ifdef CATCH_EMPTY_ITERATOR_RANGE
171+ #undef CATCH_EMPTY_ITERATOR_RANGE
172+ #endif
173+
169174 string_typestring ()const {return uri_; }
170175
171176bool is_valid ()const {return is_valid_; }