diff options
| author | Vegard Storheil Eriksen <zyp@jvnv.net> | 2010-11-27 02:43:27 +0100 | 
|---|---|---|
| committer | Vegard Storheil Eriksen <zyp@jvnv.net> | 2010-11-27 02:43:27 +0100 | 
| commit | 55ae5202de17fb7f7d1d00fc76defa194d7f9b06 (patch) | |
| tree | e0b99d32048cb5ca744135495800ab597a87e9c1 /common/list.h | |
| parent | 90d77e977fe0db416a260c286b36079ab0694f21 (diff) | |
Added List class to avoid reinventing features in each case.
Diffstat (limited to 'common/list.h')
| -rw-r--r-- | common/list.h | 34 | 
1 files changed, 34 insertions, 0 deletions
diff --git a/common/list.h b/common/list.h new file mode 100644 index 0000000..92452f1 --- /dev/null +++ b/common/list.h @@ -0,0 +1,34 @@ +#ifndef LIST_H +#define LIST_H + +#include <vector> +#include <algorithm> +#include <boost/serialization/base_object.hpp> + +//! List class with extended functionality over std::vector. +template<class T, class B = std::vector<T> > +class List : public B { +	public: +		//! Sort the list. +		void sort() { +			std::sort(B::begin(), B::end()); +		} +		 +		//! Check if specified item is present in list. +		bool contains(T item) { +			return std::find(B::begin(), B::end(), item) != B::end(); +		} +		 +		//! Check whether list is empty or not. +		operator bool() { +			return !B::empty(); +		} +		 +		//! Allow serialization through Boost.Serialize. +		template<class Archive> +		void serialize(Archive & ar, const unsigned int version) { +			ar & boost::serialization::base_object<B>(*this); +		} +}; + +#endif  | 
