85 void operator delete (
void *);
89 friend class Ptr<const T>;
102 template <
typename U>
115 template <
typename U>
156 template <
typename U>
208 operator Tester * ()
const;
227 template <
typename T,
241 template <
typename T>
265 template <
typename T1,
typename T2>
268 template <
typename T1,
typename T2>
271 template <
typename T1,
typename T2>
296 template <
typename T1,
typename T2>
299 template <
typename T1,
typename T2>
302 template <
typename T1,
typename T2>
317 template <
typename T>
319 template <
typename T>
321 template <
typename T>
323 template <
typename T>
325 template <
typename T>
327 template <
typename T>
340 template <
typename T1,
typename T2>
344 template <
typename T>
357 template <
typename T>
373 template <
typename T>
374 struct EventMemberImplObjTraits;
384 template <
typename T>
408 template <
typename T,
typename... Ts>
411 return Ptr<T> (
new T (std::forward<Ts> (args)...),
false);
414 template <
typename U>
420 template <
typename U>
427 template <
typename T>
434 template <
typename T1,
typename T2>
441 template <
typename T1,
typename T2>
448 template <
typename T1,
typename T2>
455 template <
typename T1,
typename T2>
462 template <
typename T1,
typename T2>
469 template <
typename T1,
typename T2>
476 template <
typename T>
479 return PeekPointer<T> (lhs) < PeekPointer<T> (rhs);
482 template <
typename T>
486 return PeekPointer<T> (lhs) < PeekPointer<const T> (rhs);
489 template <
typename T>
493 return PeekPointer<const T> (lhs) < PeekPointer<T> (rhs);
496 template <
typename T>
500 return PeekPointer<T> (lhs) <= PeekPointer<T> (rhs);
503 template <
typename T>
506 return PeekPointer<T> (lhs) > PeekPointer<T> (rhs);
509 template <
typename T>
512 return PeekPointer<T> (lhs) >= PeekPointer<T> (rhs);
524 template <
typename T1,
typename T2>
531 template <
typename T1,
typename T2>
538 template <
typename T1,
typename T2>
554 template <
typename T>
561 template <
typename T>
562 Ptr<T>
Copy (Ptr<const T>
object)
564 Ptr<T> p = Ptr<T> (
new T (*
PeekPointer (
object)),
false);
573 template <
typename T>
583 template <
typename T>
588 template <
typename T>
595 template <
typename T>
605 template <
typename T>
611 template <
typename T>
612 template <
typename U>
619 template <
typename T>
628 template <
typename T>
645 template <
typename T>
649 NS_ASSERT_MSG (m_ptr,
"Attempted to dereference zero pointer");
653 template <
typename T>
657 NS_ASSERT_MSG (m_ptr,
"Attempted to dereference zero pointer");
661 template <
typename T>
665 NS_ASSERT_MSG (m_ptr,
"Attempted to dereference zero pointer");
669 template <
typename T>
673 NS_ASSERT_MSG (m_ptr,
"Attempted to dereference zero pointer");
677 template <
typename T>
684 template <
typename T>
718 std::hash<ns3::Ptr<T>>
NS_ASSERT() and NS_ASSERT_MSG() macro definitions.
Helper to test for null pointer.
Smart pointer class similar to boost::intrusive_ptr.
Ptr(T *ptr)
Create a smart pointer which points to the object pointed to by the input raw pointer ptr.
friend U * GetPointer(const Ptr< U > &p)
Get a permanent pointer to the underlying object.
Ptr()
Create an empty smart pointer.
bool operator!()
Test for NULL pointer.
friend U * PeekPointer(const Ptr< U > &p)
Get a temporary pointer to the underlying object.
T & operator*() const
A const dereference.
Ptr(Ptr const &o)
Copy by referencing the same underlying object.
Ptr(T *ptr, bool ref)
Create a smart pointer which points to the object pointed to by the input raw pointer ptr.
void Acquire(void) const
Mark this as a a reference by incrementing the reference count.
Ptr< T > & operator=(Ptr const &o)
Assignment operator by referencing the same underlying object.
Ptr(Ptr< U > const &o)
Copy, removing const qualifier.
T * operator->() const
An rvalue member access.
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
bool operator>=(const int64x64_t &lhs, const int64x64_t &rhs)
Greater or equal operator.
bool operator<=(const int64x64_t &lhs, const int64x64_t &rhs)
Less or equal operator.
bool operator>(const Length &left, const Length &right)
Check if left has a value greater than right.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< T1 > DynamicCast(Ptr< T2 > const &p)
Cast a Ptr.
bool operator==(const EventId &a, const EventId &b)
Ptr< T1 > StaticCast(Ptr< T2 > const &p)
Cast a Ptr.
Ptr< T1 > ConstCast(Ptr< T2 > const &p)
Cast a Ptr.
bool operator<(const EventId &a, const EventId &b)
bool operator!=(Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > a, Callback< R, T1, T2, T3, T4, T5, T6, T7, T8, T9 > b)
Inequality test.
U * GetPointer(const Ptr< U > &p)
std::ostream & operator<<(std::ostream &os, const Angles &a)
Ptr< T1 > const_pointer_cast(Ptr< T2 > const &p)
Return a copy of p with its stored pointer const casted from T2 to T1.
U * PeekPointer(const Ptr< U > &p)
Ptr< T > Copy(Ptr< T > object)
Return a deep copy of a Ptr.
static T & GetReference(Ptr< T > const p)
Trait class to convert a pointer into a reference, used by MemPtrCallBackImpl.
static T & GetReference(Ptr< T > p)
Helper for the MakeEvent functions which take a class method.