diff options
Diffstat (limited to 'boost/asio/ip/impl/address_v4.hpp')
-rw-r--r-- | boost/asio/ip/impl/address_v4.hpp | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/boost/asio/ip/impl/address_v4.hpp b/boost/asio/ip/impl/address_v4.hpp index 028b69b676..a273f5e73e 100644 --- a/boost/asio/ip/impl/address_v4.hpp +++ b/boost/asio/ip/impl/address_v4.hpp @@ -25,23 +25,37 @@ namespace boost { namespace asio { namespace ip { +#if !defined(BOOST_ASIO_NO_DEPRECATED) + +inline address_v4 address_v4::from_string(const char* str) +{ + return boost::asio::ip::make_address_v4(str); +} + +inline address_v4 address_v4::from_string( + const char* str, boost::system::error_code& ec) +{ + return boost::asio::ip::make_address_v4(str, ec); +} + +inline address_v4 address_v4::from_string(const std::string& str) +{ + return boost::asio::ip::make_address_v4(str); +} + +inline address_v4 address_v4::from_string( + const std::string& str, boost::system::error_code& ec) +{ + return boost::asio::ip::make_address_v4(str, ec); +} + +#endif // !defined(BOOST_ASIO_NO_DEPRECATED) + template <typename Elem, typename Traits> std::basic_ostream<Elem, Traits>& operator<<( std::basic_ostream<Elem, Traits>& os, const address_v4& addr) { - boost::system::error_code ec; - std::string s = addr.to_string(ec); - if (ec) - { - if (os.exceptions() & std::basic_ostream<Elem, Traits>::failbit) - boost::asio::detail::throw_error(ec); - else - os.setstate(std::basic_ostream<Elem, Traits>::failbit); - } - else - for (std::string::iterator i = s.begin(); i != s.end(); ++i) - os << os.widen(*i); - return os; + return os << addr.to_string().c_str(); } } // namespace ip |