epoc32/include/tools/stlport/stl/_stdexcept_base.h
branchSymbian2
changeset 2 2fe1408b6811
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/epoc32/include/tools/stlport/stl/_stdexcept_base.h	Tue Mar 16 16:12:26 2010 +0000
     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 */