1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000
1.2 +++ b/epoc32/include/stdapis/stlportv5/stl/_stdexcept_base.h Wed Mar 31 12:27:01 2010 +0100
1.3 @@ -0,0 +1,102 @@
1.4 +/*
1.5 + * Copyright (c) 1996,1997
1.6 + * Silicon Graphics Computer Systems, Inc.
1.7 + *
1.8 + * Copyright (c) 1999
1.9 + * Boris Fomitchev
1.10 + *
1.11 + * This material is provided "as is", with absolutely no warranty expressed
1.12 + * or implied. Any use is at your own risk.
1.13 + *
1.14 + * Permission to use or copy this software for any purpose is hereby granted
1.15 + * without fee, provided the above notices are retained on all copies.
1.16 + * Permission to modify the code and to distribute modified code is granted,
1.17 + * provided the above notices are retained, and a notice that the code was
1.18 + * modified is included with the above copyright notice.
1.19 + *
1.20 + */
1.21 +
1.22 +#ifndef _STLP_INTERNAL_STDEXCEPT_BASE
1.23 +#define _STLP_INTERNAL_STDEXCEPT_BASE
1.24 +
1.25 +#if !defined (_STLP_USE_NATIVE_STDEXCEPT) || defined (_STLP_USE_OWN_NAMESPACE)
1.26 +
1.27 +# ifndef _STLP_INTERNAL_EXCEPTION
1.28 +# include <stl/_exception.h>
1.29 +# endif
1.30 +
1.31 +# if defined(_STLP_USE_EXCEPTIONS) || \
1.32 + !(defined(_MIPS_SIM) && defined(_ABIO32) && (_MIPS_SIM == _ABIO32))
1.33 +
1.34 +# ifndef _STLP_INTERNAL_CSTRING
1.35 +# include <stl/_cstring.h>
1.36 +# endif
1.37 +
1.38 +# ifndef _STLP_STRING_FWD_H
1.39 +# include <stl/_string_fwd.h>
1.40 +# endif
1.41 +
1.42 +# ifndef _STLP_USE_NO_IOSTREAMS
1.43 +# define _STLP_OWN_STDEXCEPT 1
1.44 +# endif
1.45 +
1.46 +_STLP_BEGIN_NAMESPACE
1.47 +
1.48 +/* We disable the 4275 warning for
1.49 + * - WinCE where there are only static version of the native C++ runtime.
1.50 + * - The MSVC compilers when the STLport user wants to make an STLport dll linked to
1.51 + * the static C++ native runtime. In this case the std::exception base class is no more
1.52 + * exported from native dll but is used as a base class for the exported __Named_exception
1.53 + * class.
1.54 + */
1.55 +# if defined (_STLP_WCE_NET) || \
1.56 + defined (_STLP_USE_DYNAMIC_LIB) && defined (_STLP_USING_CROSS_NATIVE_RUNTIME_LIB)
1.57 +# define _STLP_DO_WARNING_POP
1.58 +# pragma warning (push)
1.59 +# pragma warning (disable: 4275) // Non dll interface class 'exception' used as base
1.60 + // for dll-interface class '__Named_exception'
1.61 +# endif
1.62 +
1.63 +# if !defined (_STLP_NO_EXCEPTION_HEADER)
1.64 +# if !defined (_STLP_EXCEPTION_BASE) && !defined (_STLP_BROKEN_EXCEPTION_CLASS) && \
1.65 + defined (_STLP_USE_NAMESPACES) && defined (_STLP_USE_OWN_NAMESPACE)
1.66 +using _STLP_VENDOR_EXCEPT_STD::exception;
1.67 +# endif
1.68 +# endif
1.69 +# define _STLP_EXCEPTION_BASE exception
1.70 +
1.71 +class _STLP_CLASS_DECLSPEC __Named_exception : public _STLP_EXCEPTION_BASE {
1.72 +public:
1.73 + __Named_exception(const string& __str)
1.74 +# ifndef _STLP_USE_NO_IOSTREAMS
1.75 + ;
1.76 + const char* what() const _STLP_NOTHROW_INHERENTLY;
1.77 + ~__Named_exception() _STLP_NOTHROW_INHERENTLY;
1.78 +# else
1.79 + {
1.80 +# if !defined (_STLP_USE_SAFE_STRING_FUNCTIONS)
1.81 + strncpy(_M_name, _STLP_PRIV __get_c_string(__str), _S_bufsize);
1.82 +# else
1.83 + strncpy_s(_STLP_ARRAY_AND_SIZE(_M_name), _STLP_PRIV __get_c_string(__str), _S_bufsize);
1.84 +# endif
1.85 + _M_name[_S_bufsize - 1] = '\0';
1.86 + }
1.87 + const char* what() const _STLP_NOTHROW_INHERENTLY { return _M_name; }
1.88 +# endif
1.89 +
1.90 +private:
1.91 + enum { _S_bufsize = 256 };
1.92 + char _M_name[_S_bufsize];
1.93 +};
1.94 +
1.95 +# if defined (_STLP_DO_WARNING_POP)
1.96 +# pragma warning (pop)
1.97 +# undef _STLP_DO_WARNING_POP
1.98 +# endif
1.99 +
1.100 +_STLP_END_NAMESPACE
1.101 +
1.102 +# endif /* Not o32, and no exceptions */
1.103 +#endif /* _STLP_STDEXCEPT_SEEN */
1.104 +
1.105 +#endif /* _STLP_INTERNAL_STDEXCEPT_BASE */