$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
From: chris_at_[hidden]
Date: 2008-04-20 21:23:42
Author: chris_kohlhoff
Date: 2008-04-20 21:23:42 EDT (Sun, 20 Apr 2008)
New Revision: 44662
URL: http://svn.boost.org/trac/boost/changeset/44662
Log:
Add ability to disable the uses of the typeid operator by defining
BOOST_NO_TYPEID or BOOST_ASIO_NO_TYPEID.
Text files modified: 
   trunk/boost/asio/detail/service_registry.hpp |    10 ++++++++++                              
   trunk/libs/asio/doc/using.qbk                |     7 +++++++                                 
   2 files changed, 17 insertions(+), 0 deletions(-)
Modified: trunk/boost/asio/detail/service_registry.hpp
==============================================================================
--- trunk/boost/asio/detail/service_registry.hpp	(original)
+++ trunk/boost/asio/detail/service_registry.hpp	2008-04-20 21:23:42 EDT (Sun, 20 Apr 2008)
@@ -27,6 +27,12 @@
 #include <boost/asio/detail/noncopyable.hpp>
 #include <boost/asio/detail/service_id.hpp>
 
+#if defined(BOOST_NO_TYPEID)
+# if !defined(BOOST_ASIO_NO_TYPEID)
+#  define BOOST_ASIO_NO_TYPEID
+# endif // !defined(BOOST_ASIO_NO_TYPEID)
+#endif // defined(BOOST_NO_TYPEID)
+
 namespace boost {
 namespace asio {
 namespace detail {
@@ -157,6 +163,7 @@
     service.id_ = &id;
   }
 
+#if !defined(BOOST_ASIO_NO_TYPEID)
   // Set a service's id.
   template <typename Service>
   void init_service_id(boost::asio::io_service::service& service,
@@ -165,6 +172,7 @@
     service.type_info_ = &typeid(Service);
     service.id_ = 0;
   }
+#endif // !defined(BOOST_ASIO_NO_TYPEID)
 
   // Check if a service matches the given id.
   static bool service_id_matches(
@@ -174,6 +182,7 @@
     return service.id_ == &id;
   }
 
+#if !defined(BOOST_ASIO_NO_TYPEID)
   // Check if a service matches the given id.
   template <typename Service>
   static bool service_id_matches(
@@ -182,6 +191,7 @@
   {
     return service.type_info_ != 0 && *service.type_info_ == typeid(Service);
   }
+#endif // !defined(BOOST_ASIO_NO_TYPEID)
 
   // Mutex to protect access to internal data.
   mutable boost::asio::detail::mutex mutex_;
Modified: trunk/libs/asio/doc/using.qbk
==============================================================================
--- trunk/libs/asio/doc/using.qbk	(original)
+++ trunk/libs/asio/doc/using.qbk	2008-04-20 21:23:42 EDT (Sun, 20 Apr 2008)
@@ -255,6 +255,13 @@
         cancel the outstanding operations and close the socket.
     ]
   ]
+  [
+    [`BOOST_ASIO_NO_TYPEID`]
+    [
+      Disables uses of the `typeid` operator in Boost.Asio. Defined
+      automatically if `BOOST_NO_TYPEID` is defined.
+    ]
+  ]
 ]
 
 [endsect]