Itasca C++ Interface
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
ilinktype.h
Go to the documentation of this file.
1 #pragma once
2 
7 
8 namespace itascaxd {
13  template <class T>
14  struct LinkType {
16  LinkType() : pnt_(0), ind_(0) { }
18  LinkType(T *t,quint32 i) : pnt_(t),ind_(i) { }
20  template <class C> LinkType(const LinkType<C> &l) : pnt_(l.pnt_), ind_(l.ind_) { }
22  template <class C> const LinkType<T> &operator=(const LinkType<C> &l) { pnt_=l.pnt_; ind_=l.ind_; return *this; }
24  bool operator==(const LinkType &l) const { return pnt_==l.pnt_ && ind_==l.ind_; }
26  bool operator!=(const LinkType &l) const { return !operator==(l); }
28  T * operator->() { return pnt_; }
30  const T *operator->() const { return pnt_; }
32  quint32 ind() const { return ind_; }
34  T * pnt() { return pnt_; }
36  const T *pnt() const { return pnt_; }
37 
39  T * pnt_;
41  quint32 ind_;
42  };
43 
45  template <class T>
46  struct CLinkType {
48  CLinkType() : pnt_(0), ind_(0) { }
50  CLinkType(const T *t,quint32 i) : pnt_(t),ind_(i) { }
52  CLinkType(const LinkType<T> &l) : pnt_(l.pnt_),ind_(l.ind_) { }
54  template <class C> CLinkType(const CLinkType<C> &l) : pnt_(l.pnt_), ind_(l.ind_) { }
56  template <class C> const CLinkType<T> &operator=(const CLinkType<C> &l) { pnt_=l.pnt_; ind_=l.ind_; return *this; }
58  const CLinkType<T> &operator=(const LinkType<T> &l) { pnt_=l.pnt_; ind_=l.ind_; return *this; }
60  bool operator==(const CLinkType &l) const { return pnt_==l.pnt_ && ind_==l.ind_; }
62  bool operator!=(const CLinkType &l) const { return !operator==(l); }
63 
65  const T *operator->() const { return pnt_; }
67  quint32 ind() const { return ind_; }
69  const T *pnt() const { return pnt_; }
70 
72  const T *pnt_;
74  quint32 ind_;
75  };
76 } // namespace itascaxd
77 // EoF
Interface for LinkType<> objects, POD that contain both the pointer to the next object and an index f...
Itasca Library standard namespace, specific to 2D or 3D.
Definition: icontactmodule.h:4