ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

_stdexcept_base.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (c) 1996,1997
00003  * Silicon Graphics Computer Systems, Inc.
00004  *
00005  * Copyright (c) 1999
00006  * Boris Fomitchev
00007  *
00008  * This material is provided "as is", with absolutely no warranty expressed
00009  * or implied. Any use is at your own risk.
00010  *
00011  * Permission to use or copy this software for any purpose is hereby granted
00012  * without fee, provided the above notices are retained on all copies.
00013  * Permission to modify the code and to distribute modified code is granted,
00014  * provided the above notices are retained, and a notice that the code was
00015  * modified is included with the above copyright notice.
00016  *
00017  */
00018 
00019 #ifndef _STLP_INTERNAL_STDEXCEPT_BASE
00020 #define _STLP_INTERNAL_STDEXCEPT_BASE
00021 
00022 #if !defined (_STLP_USE_NATIVE_STDEXCEPT) || defined (_STLP_USE_OWN_NAMESPACE)
00023 
00024 #  ifndef _STLP_INTERNAL_EXCEPTION
00025 #    include <stl/_exception.h>
00026 #  endif
00027 
00028 #  if defined(_STLP_USE_EXCEPTIONS) || \
00029     !(defined(_MIPS_SIM) && defined(_ABIO32) && (_MIPS_SIM == _ABIO32))
00030 
00031 #    ifndef _STLP_INTERNAL_CSTRING
00032 #      include <stl/_cstring.h>
00033 #    endif
00034 
00035 #    ifndef _STLP_STRING_FWD_H
00036 #      include <stl/_string_fwd.h>
00037 #    endif
00038 
00039 #    ifndef _STLP_USE_NO_IOSTREAMS
00040 #      define _STLP_OWN_STDEXCEPT 1
00041 #    endif
00042 
00043 _STLP_BEGIN_NAMESPACE
00044 
00045 /* We disable the 4275 warning for
00046  *  - WinCE where there are only static version of the native C++ runtime.
00047  *  - The MSVC compilers when the STLport user wants to make an STLport dll linked to
00048  *    the static C++ native runtime. In this case the std::exception base class is no more
00049  *    exported from native dll but is used as a base class for the exported __Named_exception
00050  *    class.
00051  */
00052 #    if defined (_STLP_WCE_NET) || \
00053         defined (_STLP_USE_DYNAMIC_LIB) && defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
00054 #      define _STLP_DO_WARNING_POP
00055 #      pragma warning (push)
00056 #      pragma warning (disable: 4275) // Non dll interface class 'exception' used as base
00057                                       // for dll-interface class '__Named_exception'
00058 #    endif
00059 
00060 #    if !defined (_STLP_NO_EXCEPTION_HEADER)
00061 #      if !defined (_STLP_EXCEPTION_BASE) && !defined (_STLP_BROKEN_EXCEPTION_CLASS) && \
00062            defined (_STLP_USE_NAMESPACES) &&  defined (_STLP_USE_OWN_NAMESPACE)
00063 using _STLP_VENDOR_EXCEPT_STD::exception;
00064 #      endif
00065 #    endif
00066 #    define _STLP_EXCEPTION_BASE exception
00067 
00068 class _STLP_CLASS_DECLSPEC __Named_exception : public _STLP_EXCEPTION_BASE {
00069 public:
00070   __Named_exception(const string& __str);
00071   __Named_exception(const __Named_exception&);
00072   __Named_exception& operator = (const __Named_exception&);
00073 
00074   const char* what() const _STLP_NOTHROW_INHERENTLY;
00075   ~__Named_exception() _STLP_NOTHROW_INHERENTLY;
00076 
00077 private:
00078   enum { _S_bufsize = 256 };
00079   char _M_static_name[_S_bufsize];
00080   char *_M_name;
00081 };
00082 
00083 #    if defined (_STLP_USE_NO_IOSTREAMS) && !defined (__BUILDING_STLPORT)
00084        // if not linking to the lib, expose implementation of members here
00085 #      include <stl/_stdexcept_base.c>
00086 #    endif
00087 
00088 #    if defined (_STLP_DO_WARNING_POP)
00089 #      pragma warning (pop)
00090 #      undef _STLP_DO_WARNING_POP
00091 #    endif
00092 
00093 _STLP_END_NAMESPACE
00094 
00095 #  endif /* Not o32, and no exceptions */
00096 #endif /* _STLP_STDEXCEPT_SEEN */
00097 
00098 #endif /* _STLP_INTERNAL_STDEXCEPT_BASE */

Generated on Sun May 27 2012 04:29:32 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.