]> git.lyx.org Git - lyx.git/blobdiff - boost/boost/exception/exception.hpp
boost: update to 1.42.0
[lyx.git] / boost / boost / exception / exception.hpp
index 6df93aca8bce608915dc9419957e146d1caf38d1..79b273999c3a5d59ed8ba409e8aa856f5d978fd6 100755 (executable)
@@ -5,6 +5,12 @@
 
 #ifndef UUID_274DA366004E11DCB1DDFE2E56D89593
 #define UUID_274DA366004E11DCB1DDFE2E56D89593
+#if defined(__GNUC__) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#pragma GCC system_header
+#endif
+#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#pragma warning(push,1)
+#endif
 
 namespace
 boost
@@ -80,13 +86,13 @@ boost
     template <class Tag,class T>
     class error_info;
 
-    typedef error_info<struct tag_throw_function,char const *> throw_function;
-    typedef error_info<struct tag_throw_file,char const *> throw_file;
-    typedef error_info<struct tag_throw_line,int> throw_line;
+    typedef error_info<struct throw_function_,char const *> throw_function;
+    typedef error_info<struct throw_file_,char const *> throw_file;
+    typedef error_info<struct throw_line_,int> throw_line;
 
     template <>
     class
-    error_info<tag_throw_function,char const *>
+    error_info<throw_function_,char const *>
         {
         public:
         typedef char const * value_type;
@@ -100,7 +106,7 @@ boost
 
     template <>
     class
-    error_info<tag_throw_file,char const *>
+    error_info<throw_file_,char const *>
         {
         public:
         typedef char const * value_type;
@@ -114,7 +120,7 @@ boost
 
     template <>
     class
-    error_info<tag_throw_line,int>
+    error_info<throw_line_,int>
         {
         public:
         typedef int value_type;
@@ -129,6 +135,15 @@ boost
     template <class E,class Tag,class T>
     E const & operator<<( E const &, error_info<Tag,T> const & );
 
+    template <class E>
+    E const & operator<<( E const &, throw_function const & );
+
+    template <class E>
+    E const & operator<<( E const &, throw_file const & );
+
+    template <class E>
+    E const & operator<<( E const &, throw_line const & );
+
     class exception;
 
     template <class>
@@ -143,15 +158,14 @@ boost
         struct
         error_info_container
             {
-            virtual char const * diagnostic_information() const = 0;
-            virtual shared_ptr<error_info_base const> get( type_info_ const & ) const = 0;
-            virtual void set( shared_ptr<error_info_base const> const &, type_info_ const & ) = 0;
+            virtual char const * diagnostic_information( char const * ) const = 0;
+            virtual shared_ptr<error_info_base> get( type_info_ const & ) const = 0;
+            virtual void set( shared_ptr<error_info_base> const &, type_info_ const & ) = 0;
             virtual void add_ref() const = 0;
             virtual void release() const = 0;
 
             protected:
 
-            virtual
             ~error_info_container() throw()
                 {
                 }
@@ -169,7 +183,7 @@ boost
         template <>
         struct get_info<throw_line>;
 
-        char const * get_diagnostic_information( exception const & );
+        char const * get_diagnostic_information( exception const &, char const * );
         }
 
     class
@@ -202,36 +216,21 @@ boost
 #endif
             ;
 
+#if defined(__MWERKS__) && __MWERKS__<=0x3207
+        public:
+#else
         private:
 
         template <class E>
-        friend
-        E const &
-        operator<<( E const & x, throw_function const & y )
-            {
-            x.throw_function_=y.v_;
-            return x;
-            }
+        friend E const & operator<<( E const &, throw_function const & );
 
         template <class E>
-        friend
-        E const &
-        operator<<( E const & x, throw_file const & y )
-            {
-            x.throw_file_=y.v_;
-            return x;
-            }
+        friend E const & operator<<( E const &, throw_file const & );
 
         template <class E>
-        friend
-        E const &
-        operator<<( E const & x, throw_line const & y )
-            {
-            x.throw_line_=y.v_;
-            return x;
-            }
+        friend E const & operator<<( E const &, throw_line const & );
 
-        friend char const * exception_detail::get_diagnostic_information( exception const & );
+        friend char const * exception_detail::get_diagnostic_information( exception const &, char const * );
 
         template <class E,class Tag,class T>
         friend E const & operator<<( E const &, error_info<Tag,T> const & );
@@ -241,7 +240,7 @@ boost
         friend struct exception_detail::get_info<throw_function>;
         friend struct exception_detail::get_info<throw_file>;
         friend struct exception_detail::get_info<throw_line>;
-
+#endif
         mutable exception_detail::refcount_ptr<exception_detail::error_info_container> data_;
         mutable char const * throw_function_;
         mutable char const * throw_file_;
@@ -254,6 +253,30 @@ boost
         {
         }
 
+    template <class E>
+    E const &
+    operator<<( E const & x, throw_function const & y )
+        {
+        x.throw_function_=y.v_;
+        return x;
+        }
+
+    template <class E>
+    E const &
+    operator<<( E const & x, throw_file const & y )
+        {
+        x.throw_file_=y.v_;
+        return x;
+        }
+
+    template <class E>
+    E const &
+    operator<<( E const & x, throw_line const & y )
+        {
+        x.throw_line_=y.v_;
+        return x;
+        }
+
     ////////////////////////////////////////////////////////////////////////
 
     namespace
@@ -303,7 +326,7 @@ boost
         struct
         enable_error_info_return_type
             {
-            typedef typename enable_error_info_helper<T,sizeof(dispatch((T*)0))>::type type;
+            typedef typename enable_error_info_helper<T,sizeof(exception_detail::dispatch((T*)0))>::type type;
             };
         }
 
@@ -393,4 +416,7 @@ boost
         }
     }
 
+#if defined(_MSC_VER) && !defined(BOOST_EXCEPTION_ENABLE_WARNINGS)
+#pragma warning(pop)
+#endif
 #endif