Ne.app NeANT
The Ne.app NeANT User module of the NeANT distribution.
Main Page
Related Pages
Topics
Namespaces
Data Structures
Files
File List
Globals
EXTERNAL_HEADERS
RSL
etc
config
src
GLOBAL_BAD_CAST.cpp
Go to the documentation of this file.
1
// checking for class ::bad_cast
2
3
25
#include "config.h"
26
27
28
#ifndef _RWSTD_NO_HONOR_STD
29
# ifdef _RWSTD_NO_STD_TERMINATE
30
# include "
terminate.h
"
31
# endif
// _RWSTD_NO_STD_TERMINATE
32
#endif
// _RWSTD_NO_HONOR_STD
33
34
35
class
bad_cast
{ };
36
37
38
struct
B
{
virtual
~B
() { } };
39
struct
D1
:
B
{ };
40
struct
D2
:
B
{ };
41
42
int
main
()
43
{
44
D1
d1
;
45
B
&
b
=
d1
;
46
47
try
{
48
// throws [std::]bad_cast
49
D2
&
d2
=
dynamic_cast<
D2
&
>
(
b
);
50
(void)&
d2
;
51
}
52
catch
(
bad_cast
&) {
53
return
0;
54
}
55
catch
(...) {
56
// fail if cast throws anything other than a ::bad_cast
57
return
1;
58
}
59
60
// fail if cast doesn't throw
61
return
2;
62
}
d1
#define d1
Definition
17.names.cpp:228
b
#define b
Definition
17.names.cpp:110
d2
#define d2
Definition
17.names.cpp:254
main
int main()
Definition
GLOBAL_BAD_CAST.cpp:42
bad_cast
Definition
GLOBAL_BAD_CAST.cpp:35
B
Definition
NAMESPACE.cpp:31
B::~B
virtual ~B()
Definition
GLOBAL_BAD_CAST.cpp:38
D1
Definition
GLOBAL_BAD_CAST.cpp:39
D2
Definition
GLOBAL_BAD_CAST.cpp:40
terminate.h
Generated by
1.9.8