Changeset 4bc937 for molecuilder/src/ActOnAlltest.hpp
- Timestamp:
- Oct 5, 2009, 8:51:24 PM (16 years ago)
- Children:
- d40b96
- Parents:
- 424d1ce
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
molecuilder/src/ActOnAlltest.hpp
r424d1ce r4bc937 20 20 public: 21 21 VectorList(); 22 VectorList(VectorList &ref); 22 23 ~VectorList(); 23 24 … … 25 26 void EmptyList(); 26 27 27 template <T> void ActOnAllVectors( void (*f)(T) ) 28 template <typename res, typename T> void ActOnAllVectors( res (Vector::*f)(T), T t ); 29 template <typename res, typename T, typename U> void ActOnAllVectors( res (Vector::*f)(T, U), T t, U u ); 30 template <typename res, typename T, typename U, typename V> void ActOnAllVectors( res (Vector::*f)(T, U, V), T t, U u, V v); 28 31 29 private: 32 bool operator == (VectorList &rhs); 33 VectorList& operator = (VectorList &ref); 34 35 //private: 30 36 ListOfVectors Vectors; 31 37 }; 32 38 33 template <T> void VectorList::ActOnAllVectors( void (*f)(T) ) 39 40 VectorList::VectorList() { }; 41 VectorList::VectorList(VectorList &ref) 34 42 { 35 for (ListOfVectors::iterator Runner = Vectors.begin(); Runner != Vectors.end(); Runner++) 36 f(T); 43 ref.EmptyList(); 44 for (ListOfVectors::iterator Runner = Vectors.begin(); Runner != Vectors.end(); Runner++) { 45 ref.Vectors.push_back(new Vector (**Runner)); 46 } 47 }; 48 49 VectorList & VectorList::operator = (VectorList &ref) 50 { 51 EmptyList(); 52 for (ListOfVectors::iterator Runner = ref.Vectors.begin(); Runner != ref.Vectors.end(); Runner++) { 53 Vectors.push_back(new Vector (**Runner)); 54 } 55 return *this; 56 }; 57 58 bool VectorList::operator == (VectorList &rhs) 59 { 60 bool status = true; 61 ListOfVectors::iterator lRunner = Vectors.begin(); 62 ListOfVectors::iterator rRunner = rhs.Vectors.begin(); 63 for (;(lRunner != Vectors.end()) && (rRunner != rhs.Vectors.end()); lRunner++, rRunner++) { 64 //cout << **lRunner << " == " << **rRunner << endl; 65 status = status && (**lRunner == **rRunner); 66 } 67 return status; 68 }; 69 70 VectorList::~VectorList() { }; 71 72 template <typename res, typename T> void VectorList::ActOnAllVectors( res (Vector::*f)(T), T t ) 73 { 74 Vector *test = NULL; 75 for (ListOfVectors::iterator Runner = Vectors.begin(); Runner != Vectors.end(); Runner++) { 76 test = *Runner; 77 (test->*f)(t); 78 } 79 }; 80 81 template <typename res, typename T, typename U> void VectorList::ActOnAllVectors( res (Vector::*f)(T, U), T t, U u ) 82 { 83 Vector *test = NULL; 84 for (ListOfVectors::iterator Runner = Vectors.begin(); Runner != Vectors.end(); Runner++) { 85 test = *Runner; 86 (test->*f)(t, u); 87 } 88 }; 89 90 template <typename res, typename T, typename U, typename V> void VectorList::ActOnAllVectors( res (Vector::*f)(T, U, V), T t, U u, V v) 91 { 92 Vector *test = NULL; 93 for (ListOfVectors::iterator Runner = Vectors.begin(); Runner != Vectors.end(); Runner++) { 94 test = *Runner; 95 (test->*f)(t, u, v); 96 } 37 97 }; 38 98
Note:
See TracChangeset
for help on using the changeset viewer.