]> git.llucax.com Git - software/libev.git/commitdiff
make excptions mandatory but stdexcept.h not, make \!EV_MULTIPLICITY compile
authorroot <root>
Sat, 19 Jan 2008 00:49:06 +0000 (00:49 +0000)
committerroot <root>
Sat, 19 Jan 2008 00:49:06 +0000 (00:49 +0000)
ev++.h

diff --git a/ev++.h b/ev++.h
index a7d99c0ccf3241c30e4b7f19de83cf5c2cc5a6e7..8b1f93605045d27df39542f03ecd6caad4aea6ee 100644 (file)
--- a/ev++.h
+++ b/ev++.h
 # include "ev.h"
 #endif
 
-#ifndef EV_CXX_EXCEPTIONS
-#define EV_CXX_EXCEPTIONS 1
+#ifndef EV_USE_STDEXCEPT
+# define EV_USE_STDEXCEPT 1
 #endif
 
-#undef EV_THROW
-#if EV_CXX_EXCEPTIONS
-#  include <stdexcept>
-#  define EV_THROW(exception) throw (exception)
-#else
-#  define EV_THROW(exception)
+#if EV_USE_STDEXCEPT
+# include <stdexcept>
 #endif
 
 namespace ev {
@@ -105,15 +101,18 @@ namespace ev {
     ALL = EVUNLOOP_ALL
   };
 
-#if EV_CXX_EXCEPTIONS
-  struct bad_loop : std::runtime_error
+  struct bad_loop
+#if EV_USE_STDEXCEPT
+  : std::runtime_error
+#endif
   {
+#if EV_USE_STDEXCEPT
     bad_loop ()
-    : std::runtime_error ("loop can't be initialized")
+    : std::runtime_error ("libev event loop cannot be initialized, bad value of LIBEV_FLAGS?")
     {
     }
-  };
 #endif
+  };
 
 #ifdef EV_AX
 #  undef EV_AX
@@ -134,27 +133,27 @@ namespace ev {
   struct loop_ref
   {
 
-    loop_ref (EV_P)
+    loop_ref (EV_P) throw (bad_loop)
 #if EV_MULTIPLICITY
-      EV_THROW (bad_loop) : EV_AX (EV_A)
+    : EV_AX (EV_A)
 #endif
     {
-#if EV_MULTIPLICIY && EV_CXX_EXCEPTIONS
-      if (!EV_A)
+#if EV_MULTIPLICITY
+      if (!EV_AX)
         throw bad_loop ();
 #endif
     }
 
-    bool operator== (const loop_ref &other) const throw ()
+    bool operator == (const loop_ref &other) const throw ()
     {
 #if EV_MULTIPLICITY
-      return this->EV_AX == other.EV_AX;
+      return EV_AX == other.EV_AX;
 #else
       return true;
 #endif
     }
 
-    bool operator!= (const loop_ref &other) const throw ()
+    bool operator != (const loop_ref &other) const throw ()
     {
 #if EV_MULTIPLICITY
       return ! (*this == other);
@@ -371,38 +370,25 @@ namespace ev {
   struct default_loop: loop_ref
   {
 
-    default_loop (unsigned int flags = AUTO) EV_THROW (bad_loop)
+    default_loop (unsigned int flags = AUTO) throw (bad_loop)
 #if EV_MULTIPLICITY
-      : loop_ref (ev_default_loop (flags))
-    {
-    }
-#else
+    : loop_ref (ev_default_loop (flags))
+#endif
     {
-    #if EV_CXX_EXCEPTIONS
-      int r =
-    #endif
-          ev_default_loop (flags);
-    #if EV_CXX_EXCEPTIONS
-      if (!r)
-        throw bad_loop ();
-    #endif
-    }
+#ifndef EV_MULTIPLICITY
+    if (!ev_default_loop (flags))
+      throw bad_loop ();
 #endif
+    }
 
     ~default_loop () throw ()
     {
       ev_default_destroy ();
-#if EV_MULTIPLICITY
-      EV_AX = 0;
-#endif
     }
 
   private:
-
     default_loop (const default_loop &);
-
-    default_loop & operator= (const default_loop &);
-
+    default_loop &operator = (const default_loop &);
   };
 
   inline loop_ref get_default_loop () throw ()