00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042
00050 #ifndef STLSOFT_INCL_STLSOFT_ERROR_HPP_THROW_POLICIES
00051 #define STLSOFT_INCL_STLSOFT_ERROR_HPP_THROW_POLICIES
00052
00053 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00054 # define STLSOFT_VER_STLSOFT_ERROR_HPP_THROW_POLICIES_MAJOR 5
00055 # define STLSOFT_VER_STLSOFT_ERROR_HPP_THROW_POLICIES_MINOR 0
00056 # define STLSOFT_VER_STLSOFT_ERROR_HPP_THROW_POLICIES_REVISION 1
00057 # define STLSOFT_VER_STLSOFT_ERROR_HPP_THROW_POLICIES_EDIT 50
00058 #endif
00059
00060
00061
00062
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 #ifndef STLSOFT_INCL_STLSOFT_H_STLSOFT
00073 # include <stlsoft/stlsoft.h>
00074 #endif
00075
00076 #ifndef STLSOFT_INCL_EXCEPTION
00077 # define STLSOFT_INCL_EXCEPTION
00078 # include <exception>
00079 #endif
00080
00081
00082
00083
00084
00085 #ifndef _STLSOFT_NO_NAMESPACE
00086 namespace stlsoft
00087 {
00088 #endif
00089
00090
00091
00092
00093
00099
00100 struct null_exception_policy
00101 {
00104 public:
00106 struct thrown_type
00107 {
00108 };
00110
00113 public:
00115 void operator ()() const
00116 {}
00117 #ifdef STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
00119 template <ss_typename_param_k T>
00120 void operator ()(T const& ) const stlsoft_throw_0()
00121 {
00122
00123 }
00125 template< ss_typename_param_k T1
00126 , ss_typename_param_k T2
00127 >
00128 void operator ()(T1 const& , T2 const& ) const stlsoft_throw_0()
00129 {
00130
00131 }
00133 template< ss_typename_param_k T1
00134 , ss_typename_param_k T2
00135 , ss_typename_param_k T3
00136 >
00137 void operator ()(T1 const& , T2 const& , T3 const& ) const stlsoft_throw_0()
00138 {
00139
00140 }
00142 template< ss_typename_param_k T1
00143 , ss_typename_param_k T2
00144 , ss_typename_param_k T3
00145 , ss_typename_param_k T4
00146 >
00147 void operator ()(T1 const& , T2 const& , T3 const& , T4 const& ) const stlsoft_throw_0()
00148 {
00149
00150 }
00151 #endif // STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
00153 };
00154
00160 typedef null_exception_policy nothrow_exception_policy;
00161
00167 template<ss_typename_param_k E>
00168
00169 struct throw_exception_policy
00170 {
00173 public:
00175 typedef E thrown_type;
00177
00180 public:
00182 void operator ()() const
00183 {
00184 throw thrown_type();
00185 }
00186 #ifdef STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
00188 template <ss_typename_param_k T>
00189 void operator ()(T const& t) const
00190 {
00191 STLSOFT_THROW_X(thrown_type(t));
00192 }
00194 template<ss_typename_param_k T1, ss_typename_param_k T2>
00195 void operator ()(T1 const& t1, T2 const& t2) const
00196 {
00197 STLSOFT_THROW_X(thrown_type(t1, t2));
00198 }
00200 template<ss_typename_param_k T1, ss_typename_param_k T2, ss_typename_param_k T3>
00201 void operator ()(T1 const& t1, T2 const& t2, T3 const& t3) const
00202 {
00203 STLSOFT_THROW_X(thrown_type(t1, t2, t3));
00204 }
00206 template<ss_typename_param_k T1, ss_typename_param_k T2, ss_typename_param_k T3, ss_typename_param_k T4>
00207 void operator ()(T1 const& t1, T2 const& t2, T3 const& t3, T4 const& t4) const
00208 {
00209 STLSOFT_THROW_X(thrown_type(t1, t2, t3, t4));
00210 }
00211 #endif // STLSOFT_CF_MEMBER_TEMPLATE_FUNCTION_SUPPORT
00213 };
00214
00215 #ifndef STLSOFT_DOCUMENTATION_SKIP_SECTION
00216 # ifdef _STLSOFT_INCLUDE_OBSOLETE
00217
00218 typedef null_exception_policy null_exception;
00219 typedef null_exception_policy nothrow_exception;
00220
00221 # endif
00222 #endif
00223
00224
00225
00226 #ifndef _STLSOFT_NO_NAMESPACE
00227 }
00228 #endif
00229
00230
00231
00232 #endif
00233
00234