#include <assert.h>#include "std/config.H"#include "std/thread_mutex.H"Go to the source code of this file.
Compounds | |
| class | REFcounter |
| class | REFlock |
| class | REFptr |
Defines | |
| #define | REF_CLASS(FOO) FOO; typedef REFptr<FOO> FOO##ptr; class FOO |
| #define | FD_REF_CLASS(FOO) FOO; typedef REFptr<FOO> FOO##ptr |
| #define | cREFptr const REFptr |
| #define | REF_ME(A) ((REFcounter *)A) |
| #define | MAKE_PTR_BASEC(A) |
| #define | MAKE_PTR_SUBC(A, B) |
|
|
|
|
|
|
|
|
Value: class A; \ class A##subc { \ public : \ virtual A *A##cast() const = 0; \ }; \ typedef const class A##ptr c##A##ptr; \ class A##ptr : public REFptr<A>, public A##subc { \ public : \ A##ptr() { }\ A##ptr(A *g): REFptr<A>(g) { }\ A##ptr(const A##ptr &p): REFptr<A>(p.p_) { }\ A##ptr(const A##subc &p): REFptr<A>(p.A##cast()) { } \ \ virtual A *A##cast() const { return p_; } \ } |
|
|
Value: class A; \ class A##subc: public B##subc { \ public : \ virtual A *A##cast() const = 0; \ virtual B *B##cast() const { return (B *)A##cast(); } \ }; \ typedef const class A##ptr c##A##ptr; \ class A##ptr : public REFptr<A>, public A##subc { \ public : \ A##ptr() { }\ A##ptr(A *g): REFptr<A>(g) { }\ A##ptr(const A##ptr &p): REFptr<A>(p.p_) { }\ A##ptr(const A##subc &p): REFptr<A>(p.A##cast()) { } \ \ virtual A *A##cast() const { return p_; } \ } |
|
|
|
|
|
|
1.2.18