This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/dm/include/exception

95 lines
2.1 KiB
Plaintext

/* Copyright (C) 2003 by Digital Mars.
* www.digitalmars.com
* All Rights Reserved.
*/
#if __DMC__ || __RCC__
#pragma once
#endif
#ifndef __EXCEPTION
#define __EXCEPTION 1
#ifndef __cplusplus
#error Use C++ compiler for exception
#endif
//class Type_info;
#ifndef __TYPE_INFO__
#define __TYPE_INFO__ 1
namespace std
{
class type_info
{
public:
void *pdata;
public:
virtual __cdecl ~type_info();
bool __cdecl operator==(const type_info& rhs) const;
bool __cdecl operator!=(const type_info& rhs) const;
bool __cdecl before(const type_info& rhs) const;
const char* __cdecl name() const;
protected:
type_info();
private:
__cdecl type_info(const type_info& rhs);
type_info& __cdecl operator=(const type_info& rhs);
};
}
// Type_info is for link compatibility with old code
class Type_info : public std::type_info
{
private:
__cdecl Type_info(const Type_info&);
Type_info& __cdecl operator=(const Type_info&);
public:
virtual __cdecl ~Type_info();
int __cdecl operator==(const Type_info&) const;
int __cdecl operator!=(const Type_info&) const;
int __cdecl before(const Type_info&) const;
const char * __cdecl name() const;
};
#endif
namespace std
{
typedef void (__cdecl *unexpected_handler)();
unexpected_handler __cdecl set_unexpected(unexpected_handler f) throw();
void __cdecl unexpected();
typedef void (__cdecl *terminate_handler)();
terminate_handler __cdecl set_terminate(terminate_handler f) throw();
void __cdecl terminate();
bool __cdecl uncaught_exception();
class exception
{
public:
exception() throw() { }
exception(const exception&) throw() { }
exception& operator=(const exception&) throw() { return *this; }
virtual ~exception() throw();
virtual const char* what() const throw();
};
class bad_exception : public exception
{
public:
bad_exception() throw() { }
bad_exception(const bad_exception&) throw() { }
bad_exception& operator=(const bad_exception&) throw() { return *this; }
virtual ~bad_exception() throw();
virtual const char* what() const throw();
};
}
#endif