14#ifndef POINTERTOBASE_H
15#define POINTERTOBASE_H
29class PointerToBase :
public PointerToVoid {
34 ALWAYS_INLINE
constexpr PointerToBase()
noexcept =
default;
35 INLINE PointerToBase(To *ptr);
36 INLINE PointerToBase(
const PointerToBase<T> ©);
37 INLINE PointerToBase(PointerToBase<T> &&from)
noexcept;
39 INLINE PointerToBase(PointerToBase<Y> &&r)
noexcept;
41 INLINE ~PointerToBase();
43 INLINE
void reassign(To *ptr);
44 INLINE
void reassign(
const PointerToBase<To> ©);
45 INLINE
void reassign(PointerToBase<To> &&from)
noexcept;
47 INLINE
void reassign(PointerToBase<Y> &&from)
noexcept;
49 INLINE
void update_type(To *ptr);
55 template<
typename Y>
friend class PointerToBase;
56 template<
typename Y>
friend class WeakPointerToBase;
61 void output(std::ostream &out)
const;
65INLINE std::ostream &operator <<(std::ostream &out,
const PointerToBase<T> &pointer) {
This is the base class for PointerTo and ConstPointerTo.
void output(std::ostream &out) const
A handy function to output PointerTo's as a hex pointer followed by a reference count.
void clear()
A convenient way to set the PointerTo object to NULL.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.