|
Last change
on this file since 424d1ce was ef36b84, checked in by Frederik Heber <heber@…>, 16 years ago |
|
ActOnAll is a test (not in the molecuilder source tree, but as a singular UnitTest) to get a template function for Vector member function calls.
The idea is to have a call such as:
ActOnAll( AddVector (1.,0.,0.) );
which performs the AddVector on all Vectors (inside the atoms) in e.g. the molecule class.
This would save a lot of unnecessary lines and would make the code in general easier to read.
|
-
Property mode
set to
100644
|
|
File size:
935 bytes
|
| Line | |
|---|
| 1 | /*
|
|---|
| 2 | * ActOnAlltest.hpp
|
|---|
| 3 | *
|
|---|
| 4 | * Created on: 04.10.2009
|
|---|
| 5 | * Author: FrederikHeber
|
|---|
| 6 | */
|
|---|
| 7 |
|
|---|
| 8 | #ifndef ACTONALLTEST_HPP_
|
|---|
| 9 | #define ACTONALLTEST_HPP_
|
|---|
| 10 |
|
|---|
| 11 | using namespace std;
|
|---|
| 12 |
|
|---|
| 13 | #include <list>
|
|---|
| 14 | #include <vector.hpp>
|
|---|
| 15 |
|
|---|
| 16 | #define ListOfVectors list<Vector *>
|
|---|
| 17 |
|
|---|
| 18 | class VectorList
|
|---|
| 19 | {
|
|---|
| 20 | public:
|
|---|
| 21 | VectorList();
|
|---|
| 22 | ~VectorList();
|
|---|
| 23 |
|
|---|
| 24 | void AddVector(Vector *v);
|
|---|
| 25 | void EmptyList();
|
|---|
| 26 |
|
|---|
| 27 | template <T> void ActOnAllVectors( void (*f)(T) )
|
|---|
| 28 |
|
|---|
| 29 | private:
|
|---|
| 30 | ListOfVectors Vectors;
|
|---|
| 31 | };
|
|---|
| 32 |
|
|---|
| 33 | template <T> void VectorList::ActOnAllVectors( void (*f)(T) )
|
|---|
| 34 | {
|
|---|
| 35 | for (ListOfVectors::iterator Runner = Vectors.begin(); Runner != Vectors.end(); Runner++)
|
|---|
| 36 | f(T);
|
|---|
| 37 | };
|
|---|
| 38 |
|
|---|
| 39 | void VectorList::AddVector(Vector *v)
|
|---|
| 40 | {
|
|---|
| 41 | Vectors.push_back(v);
|
|---|
| 42 | };
|
|---|
| 43 |
|
|---|
| 44 | void VectorList::EmptyList()
|
|---|
| 45 | {
|
|---|
| 46 | for (ListOfVectors::iterator Runner = Vectors.begin(); Runner != Vectors.end(); Runner++) {
|
|---|
| 47 | delete(*Runner);
|
|---|
| 48 | }
|
|---|
| 49 | Vectors.clear();
|
|---|
| 50 | }
|
|---|
| 51 |
|
|---|
| 52 | #endif /* ACTONALLTEST_HPP_ */
|
|---|
Note:
See
TracBrowser
for help on using the repository browser.