_STD_END #include <functional> _STD_BEGIN _CRTIMP2_PURE _NO_RETURN(__CLRCALL_PURE_OR_CDECL _Xbad_function_call()) { // report a bad_function_call error _THROW_NCEE(bad_function_call, 0); }
_STD_END #if _HAS_EXCEPTIONS #include <regex> _STD_BEGIN _CRTIMP2_PURE _NO_RETURN(__CLRCALL_PURE_OR_CDECL _Xregex_error(regex_constants::error_type _Code)) { // report a regex_error _THROW_NCEE(regex_error, _Code); }
_STD_BEGIN // We are not using these functions from the mixed msvcm80.dll, because we cannot throw from /clr modules // and catch from /clr:pure modules. These functions should never be called from msvcm80.dll, so we use _THROW_NCEE, // which call _invoke_watsonsignaling an internal error in our libraries. // The functions are actually implemented inline (see xstring and stdexcept). // See VSW#476338 for details. _MRTIMP2 void __cdecl _String_base::_Xlen() { // report a length_error _THROW_NCEE(length_error, "string too long"); }
_MRTIMP2 void __cdecl _String_base::_Xran() { // report an out_of_range error _THROW_NCEE(out_of_range, "invalid string position"); }
[[noreturn]] _CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Xregex_error(regex_constants::error_type _Code) { // report a regex_error _THROW_NCEE(regex_error, _Code); }
[[noreturn]] _CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Xbad_alloc() { // report a bad_alloc error _THROW_NCEE(bad_alloc, _EMPTY_ARGUMENT); }
[[noreturn]] _CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Xbad_function_call() { // report a bad_function_call error _THROW_NCEE(bad_function_call, _EMPTY_ARGUMENT); }
[[noreturn]] _CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Xruntime_error(_In_z_ const char *_Message) { // report a runtime_error _THROW_NCEE(runtime_error, _Message); }
[[noreturn]] _CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Xoverflow_error(_In_z_ const char *_Message) { // report an overflow error _THROW_NCEE(overflow_error, _Message); }
_CRTIMP2_PURE _NO_RETURN(__CLRCALL_PURE_OR_CDECL _Xinvalid_argument(_In_z_ const char *_Message)) { // report an invalid_argument error _THROW_NCEE(invalid_argument, _Message); }
[[noreturn]] _CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Xinvalid_argument(_In_z_ const char *_Message) { // report an invalid_argument error _THROW_NCEE(invalid_argument, _Message); }
_STD_BEGIN _CRTIMP2_PURE _NO_RETURN(__CLRCALL_PURE_OR_CDECL _Xbad_alloc()) { // report a bad_alloc error _THROW_NCEE(_XSTD bad_alloc, _EMPTY_ARGUMENT); }
_CRTIMP2_PURE _NO_RETURN(__CLRCALL_PURE_OR_CDECL _Xruntime_error(_In_z_ const char *_Message)) { // report a runtime_error _THROW_NCEE(runtime_error, _Message); }
_CRTIMP2_PURE _NO_RETURN(__CLRCALL_PURE_OR_CDECL _Xoverflow_error(_In_z_ const char *_Message)) { // report an overflow error _THROW_NCEE(overflow_error, _Message); }
_CRTIMP2_PURE _NO_RETURN(__CLRCALL_PURE_OR_CDECL _Xout_of_range(_In_z_ const char *_Message)) { // report an out_of_range error _THROW_NCEE(out_of_range, _Message); }
[[noreturn]] _CRTIMP2_PURE void __CLRCALL_PURE_OR_CDECL _Xout_of_range(_In_z_ const char *_Message) { // report an out_of_range error _THROW_NCEE(out_of_range, _Message); }
_MRTIMP2 void __cdecl _String_base::_Xinvarg() { // report an out_of_range error _THROW_NCEE(invalid_argument, "invalid string argument"); }
_CRTIMP2_PURE _NO_RETURN(__CLRCALL_PURE_OR_CDECL _Xregex_error(regex_constants::error_type _Code)) { // report a regex_error _THROW_NCEE(regex_error, _Code); }