Add noexcept qualifier to ip::basic_endpoint class.
diff --git a/asio/include/asio/ip/basic_endpoint.hpp b/asio/include/asio/ip/basic_endpoint.hpp
index 69c8e97..92e02a9 100644
--- a/asio/include/asio/ip/basic_endpoint.hpp
+++ b/asio/include/asio/ip/basic_endpoint.hpp
@@ -56,7 +56,7 @@
 #endif
 
   /// Default constructor.
-  basic_endpoint()
+  basic_endpoint() ASIO_NOEXCEPT
     : impl_()
   {
   }
@@ -78,7 +78,7 @@
    * @endcode
    */
   basic_endpoint(const InternetProtocol& internet_protocol,
-      unsigned short port_num)
+      unsigned short port_num) ASIO_NOEXCEPT
     : impl_(internet_protocol.family(), port_num)
   {
   }
@@ -86,27 +86,28 @@
   /// Construct an endpoint using a port number and an IP address. This
   /// constructor may be used for accepting connections on a specific interface
   /// or for making a connection to a remote endpoint.
-  basic_endpoint(const asio::ip::address& addr, unsigned short port_num)
+  basic_endpoint(const asio::ip::address& addr,
+      unsigned short port_num) ASIO_NOEXCEPT
     : impl_(addr, port_num)
   {
   }
 
   /// Copy constructor.
-  basic_endpoint(const basic_endpoint& other)
+  basic_endpoint(const basic_endpoint& other) ASIO_NOEXCEPT
     : impl_(other.impl_)
   {
   }
 
 #if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
   /// Move constructor.
-  basic_endpoint(basic_endpoint&& other)
+  basic_endpoint(basic_endpoint&& other) ASIO_NOEXCEPT
     : impl_(other.impl_)
   {
   }
 #endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
 
   /// Assign from another endpoint.
-  basic_endpoint& operator=(const basic_endpoint& other)
+  basic_endpoint& operator=(const basic_endpoint& other) ASIO_NOEXCEPT
   {
     impl_ = other.impl_;
     return *this;
@@ -114,7 +115,7 @@
 
 #if defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
   /// Move-assign from another endpoint.
-  basic_endpoint& operator=(basic_endpoint&& other)
+  basic_endpoint& operator=(basic_endpoint&& other) ASIO_NOEXCEPT
   {
     impl_ = other.impl_;
     return *this;
@@ -122,7 +123,7 @@
 #endif // defined(ASIO_HAS_MOVE) || defined(GENERATING_DOCUMENTATION)
 
   /// The protocol associated with the endpoint.
-  protocol_type protocol() const
+  protocol_type protocol() const ASIO_NOEXCEPT
   {
     if (impl_.is_v4())
       return InternetProtocol::v4();
@@ -130,19 +131,19 @@
   }
 
   /// Get the underlying endpoint in the native type.
-  data_type* data()
+  data_type* data() ASIO_NOEXCEPT
   {
     return impl_.data();
   }
 
   /// Get the underlying endpoint in the native type.
-  const data_type* data() const
+  const data_type* data() const ASIO_NOEXCEPT
   {
     return impl_.data();
   }
 
   /// Get the underlying size of the endpoint in the native type.
-  std::size_t size() const
+  std::size_t size() const ASIO_NOEXCEPT
   {
     return impl_.size();
   }
@@ -154,75 +155,75 @@
   }
 
   /// Get the capacity of the endpoint in the native type.
-  std::size_t capacity() const
+  std::size_t capacity() const ASIO_NOEXCEPT
   {
     return impl_.capacity();
   }
 
   /// Get the port associated with the endpoint. The port number is always in
   /// the host's byte order.
-  unsigned short port() const
+  unsigned short port() const ASIO_NOEXCEPT
   {
     return impl_.port();
   }
 
   /// Set the port associated with the endpoint. The port number is always in
   /// the host's byte order.
-  void port(unsigned short port_num)
+  void port(unsigned short port_num) ASIO_NOEXCEPT
   {
     impl_.port(port_num);
   }
 
   /// Get the IP address associated with the endpoint.
-  asio::ip::address address() const
+  asio::ip::address address() const ASIO_NOEXCEPT
   {
     return impl_.address();
   }
 
   /// Set the IP address associated with the endpoint.
-  void address(const asio::ip::address& addr)
+  void address(const asio::ip::address& addr) ASIO_NOEXCEPT
   {
     impl_.address(addr);
   }
 
   /// Compare two endpoints for equality.
   friend bool operator==(const basic_endpoint<InternetProtocol>& e1,
-      const basic_endpoint<InternetProtocol>& e2)
+      const basic_endpoint<InternetProtocol>& e2) ASIO_NOEXCEPT
   {
     return e1.impl_ == e2.impl_;
   }
 
   /// Compare two endpoints for inequality.
   friend bool operator!=(const basic_endpoint<InternetProtocol>& e1,
-      const basic_endpoint<InternetProtocol>& e2)
+      const basic_endpoint<InternetProtocol>& e2) ASIO_NOEXCEPT
   {
     return !(e1 == e2);
   }
 
   /// Compare endpoints for ordering.
   friend bool operator<(const basic_endpoint<InternetProtocol>& e1,
-      const basic_endpoint<InternetProtocol>& e2)
+      const basic_endpoint<InternetProtocol>& e2) ASIO_NOEXCEPT
   {
     return e1.impl_ < e2.impl_;
   }
 
   /// Compare endpoints for ordering.
   friend bool operator>(const basic_endpoint<InternetProtocol>& e1,
-      const basic_endpoint<InternetProtocol>& e2)
+      const basic_endpoint<InternetProtocol>& e2) ASIO_NOEXCEPT
   {
     return e2.impl_ < e1.impl_;
   }
 
   /// Compare endpoints for ordering.
   friend bool operator<=(const basic_endpoint<InternetProtocol>& e1,
-      const basic_endpoint<InternetProtocol>& e2)
+      const basic_endpoint<InternetProtocol>& e2) ASIO_NOEXCEPT
   {
     return !(e2 < e1);
   }
 
   /// Compare endpoints for ordering.
   friend bool operator>=(const basic_endpoint<InternetProtocol>& e1,
-      const basic_endpoint<InternetProtocol>& e2)
+      const basic_endpoint<InternetProtocol>& e2) ASIO_NOEXCEPT
   {
     return !(e1 < e2);
   }
diff --git a/asio/include/asio/ip/detail/endpoint.hpp b/asio/include/asio/ip/detail/endpoint.hpp
index e0c66ff..a422373 100644
--- a/asio/include/asio/ip/detail/endpoint.hpp
+++ b/asio/include/asio/ip/detail/endpoint.hpp
@@ -33,42 +33,43 @@
 {
 public:
   // Default constructor.
-  ASIO_DECL endpoint();
+  ASIO_DECL endpoint() ASIO_NOEXCEPT;
 
   // Construct an endpoint using a family and port number.
-  ASIO_DECL endpoint(int family, unsigned short port_num);
+  ASIO_DECL endpoint(int family,
+      unsigned short port_num) ASIO_NOEXCEPT;
 
   // Construct an endpoint using an address and port number.
   ASIO_DECL endpoint(const asio::ip::address& addr,
-      unsigned short port_num);
+      unsigned short port_num) ASIO_NOEXCEPT;
 
   // Copy constructor.
-  endpoint(const endpoint& other)
+  endpoint(const endpoint& other) ASIO_NOEXCEPT
     : data_(other.data_)
   {
   }
 
   // Assign from another endpoint.
-  endpoint& operator=(const endpoint& other)
+  endpoint& operator=(const endpoint& other) ASIO_NOEXCEPT
   {
     data_ = other.data_;
     return *this;
   }
 
   // Get the underlying endpoint in the native type.
-  asio::detail::socket_addr_type* data()
+  asio::detail::socket_addr_type* data() ASIO_NOEXCEPT
   {
     return &data_.base;
   }
 
   // Get the underlying endpoint in the native type.
-  const asio::detail::socket_addr_type* data() const
+  const asio::detail::socket_addr_type* data() const ASIO_NOEXCEPT
   {
     return &data_.base;
   }
 
   // Get the underlying size of the endpoint in the native type.
-  std::size_t size() const
+  std::size_t size() const ASIO_NOEXCEPT
   {
     if (is_v4())
       return sizeof(asio::detail::sockaddr_in4_type);
@@ -80,33 +81,34 @@
   ASIO_DECL void resize(std::size_t new_size);
 
   // Get the capacity of the endpoint in the native type.
-  std::size_t capacity() const
+  std::size_t capacity() const ASIO_NOEXCEPT
   {
     return sizeof(data_);
   }
 
   // Get the port associated with the endpoint.
-  ASIO_DECL unsigned short port() const;
+  ASIO_DECL unsigned short port() const ASIO_NOEXCEPT;
 
   // Set the port associated with the endpoint.
-  ASIO_DECL void port(unsigned short port_num);
+  ASIO_DECL void port(unsigned short port_num) ASIO_NOEXCEPT;
 
   // Get the IP address associated with the endpoint.
-  ASIO_DECL asio::ip::address address() const;
+  ASIO_DECL asio::ip::address address() const ASIO_NOEXCEPT;
 
   // Set the IP address associated with the endpoint.
-  ASIO_DECL void address(const asio::ip::address& addr);
+  ASIO_DECL void address(
+      const asio::ip::address& addr) ASIO_NOEXCEPT;
 
   // Compare two endpoints for equality.
-  ASIO_DECL friend bool operator==(
-      const endpoint& e1, const endpoint& e2);
+  ASIO_DECL friend bool operator==(const endpoint& e1,
+      const endpoint& e2) ASIO_NOEXCEPT;
 
   // Compare endpoints for ordering.
-  ASIO_DECL friend bool operator<(
-      const endpoint& e1, const endpoint& e2);
+  ASIO_DECL friend bool operator<(const endpoint& e1,
+      const endpoint& e2) ASIO_NOEXCEPT;
 
   // Determine whether the endpoint is IPv4.
-  bool is_v4() const
+  bool is_v4() const ASIO_NOEXCEPT
   {
     return data_.base.sa_family == ASIO_OS_DEF(AF_INET);
   }
diff --git a/asio/include/asio/ip/detail/impl/endpoint.ipp b/asio/include/asio/ip/detail/impl/endpoint.ipp
index 0947a79..8a750d6 100644
--- a/asio/include/asio/ip/detail/impl/endpoint.ipp
+++ b/asio/include/asio/ip/detail/impl/endpoint.ipp
@@ -31,7 +31,7 @@
 namespace ip {
 namespace detail {
 
-endpoint::endpoint()
+endpoint::endpoint() ASIO_NOEXCEPT
   : data_()
 {
   data_.v4.sin_family = ASIO_OS_DEF(AF_INET);
@@ -39,7 +39,7 @@
   data_.v4.sin_addr.s_addr = ASIO_OS_DEF(INADDR_ANY);
 }
 
-endpoint::endpoint(int family, unsigned short port_num)
+endpoint::endpoint(int family, unsigned short port_num) ASIO_NOEXCEPT
   : data_()
 {
   using namespace std; // For memcpy.
@@ -69,7 +69,7 @@
 }
 
 endpoint::endpoint(const asio::ip::address& addr,
-    unsigned short port_num)
+    unsigned short port_num) ASIO_NOEXCEPT
   : data_()
 {
   using namespace std; // For memcpy.
@@ -106,7 +106,7 @@
   }
 }
 
-unsigned short endpoint::port() const
+unsigned short endpoint::port() const ASIO_NOEXCEPT
 {
   if (is_v4())
   {
@@ -120,7 +120,7 @@
   }
 }
 
-void endpoint::port(unsigned short port_num)
+void endpoint::port(unsigned short port_num) ASIO_NOEXCEPT
 {
   if (is_v4())
   {
@@ -134,7 +134,7 @@
   }
 }
 
-asio::ip::address endpoint::address() const
+asio::ip::address endpoint::address() const ASIO_NOEXCEPT
 {
   using namespace std; // For memcpy.
   if (is_v4())
@@ -155,18 +155,18 @@
   }
 }
 
-void endpoint::address(const asio::ip::address& addr)
+void endpoint::address(const asio::ip::address& addr) ASIO_NOEXCEPT
 {
   endpoint tmp_endpoint(addr, port());
   data_ = tmp_endpoint.data_;
 }
 
-bool operator==(const endpoint& e1, const endpoint& e2)
+bool operator==(const endpoint& e1, const endpoint& e2) ASIO_NOEXCEPT
 {
   return e1.address() == e2.address() && e1.port() == e2.port();
 }
 
-bool operator<(const endpoint& e1, const endpoint& e2)
+bool operator<(const endpoint& e1, const endpoint& e2) ASIO_NOEXCEPT
 {
   if (e1.address() < e2.address())
     return true;