]> git.donarmstrong.com Git - lilypond.git/blobdiff - flower/include/pointer.hh
release: 0.0.62
[lilypond.git] / flower / include / pointer.hh
index e29a298ace44ba9b0ebb6f5c0eeec874812186c1..58f8e198b0537e4aae014ed1314972dee3723bbe 100644 (file)
   Sorry for the silly naming */
 template <class T>
 class P {
-    
-    void copy(T*);
+    /**
+      Set contents to a copy of #t_l#
+     */
+    void copy(T const*t_l);
     T* t_p;
+
+    /**
+      junk contents and set to 0
+     */
     void junk();
 public:
     
     P(P const &src);
+    /**
+      Remove  the pointer, and return it.
+     */
     
     T *get_p() { T*p = t_p; t_p=0; return p; }
-    T *get_l() { return t_p; }
+    /**
+      return the pointer
+     */
+    T *get_l()  { return t_p; }
+
+    T const *get_C() const { return t_p; }
+    /**
+      copy the contents of pointer, and return it
+     */
     T *copy_p() const;
+    /**
+      swallow new_p, and set contents t new_p
+     */
     void set_p (T *new_p); 
-    void set_l (T *t_l); 
+    /**
+      junk contents, and  copy contents of t_l
+     */
+    void set_l (T const *t_C); 
     
     P &operator =(P const &);
     ~P();
@@ -42,6 +65,8 @@ public:
     T *operator ->() { return t_p; }
     operator T * () {  return t_p; }
     const T *operator ->() const { return t_p ; }
+    T &operator *() { return *t_p; }
+    T const  &operator *() const { return *t_p; }
     operator const T *() const { return t_p; }
 };
 #endif // POINTER_HH