11 #include <boost/unordered_map.hpp>
12 #include <boost/unordered_set.hpp>
25 const typename P::first_type&
35 const typename P::second_type&
44 :
public std::unary_function<typename _Fn::argument_type, typename _Fn::result_type>
47 typedef std::unary_function<
typename _Fn::argument_type,
48 typename _Fn::result_type>
_Base;
53 const typename _Fn::argument_type& _Left)
70 typename _Fn::argument_type
value;
78 typename _Fn::argument_type _Val(_Left);
96 static_cast<void>(index);
98 Assert((index==0&&t.size()==1)
99 || (t.size()>1 && index<=t.size()-1));
104 typename C::iterator it = std::find(_container.begin(), _container.end(), pT);
105 if (it!=_container.end())
108 _container.erase(it);
114 typename C::iterator it = std::find(_container.begin(), _container.end(), pT);
115 if (it!=_container.end())
117 _container.erase(it);
121 template <
class K,
class T> T*
get_from_map(std::map<K, T*>& _map,
const K& key)
123 typename std::map<K, T*>::const_iterator it = _map.find(key);
131 typename std::map<K, T*>::iterator it = _map.find(key);
143 while(_vector.empty()==
false)
151 while(_list.empty()==
false)
159 while(_set.empty()==
false)
167 while(_map.empty()==
false)
169 typename std::map<K, T*>::iterator it = _map.begin();
179 template <
class T> T*
get_nth_item(boost::unordered_set<T*>& _set,
size_t index)
186 typename std::list<T*>::const_iterator it = _set.begin();
187 std::advance(it, index);
198 typename std::list<T*>::const_iterator it = _list.begin();
199 std::advance(it, index);
203 template <
class T>
const T*
get_nth_item(
const std::list<T*>& _list,
size_t index)
210 typename std::list<T*>::const_iterator it = _list.begin();
211 std::advance(it, index);
215 template <
class T> T*
get_nth_item(std::vector<T*>& _vector,
size_t index)
222 return _vector[index];
225 template <
class T> T*
get_nth_item(
const std::vector<T*>& _vector,
size_t index)
232 return _vector[index];
235 template <
class K,
class T> T*
get_nth_item(std::map<K, T*>& _map,
size_t index)
242 typename std::map<K, T*>::const_iterator it = _map.begin();
243 std::advance(it, index);
247 template <
class K,
class T> T*
get_nth_item(
const std::map<K, T*>& _map,
size_t index)
254 typename std::map<K, T*>::const_iterator it = _map.begin();
255 std::advance(it, index);
Definition: DtSTLUtilities.h:43
_Base::result_type result_type
Definition: DtSTLUtilities.h:50
_Fn::argument_type value
Definition: DtSTLUtilities.h:70
result_type operator()(void)
Definition: DtSTLUtilities.h:63
T * get_nth_item(boost::unordered_set< T * > &_set, size_t index)
Definition: DtSTLUtilities.h:179
void verify_index_for_container(size_t index, const T &t)
Definition: DtSTLUtilities.h:92
binderNoArgs< _Fn > bind(const _Fn &_Func, const _Ty &_Left)
Definition: DtSTLUtilities.h:76
void destroy_all_from_vector(std::vector< T * > &_vector)
Definition: DtSTLUtilities.h:141
binderNoArgs(const _Fn &_Func, const typename _Fn::argument_type &_Left)
Definition: DtSTLUtilities.h:52
void destroy_from_map(std::map< K, T * > &_map, const K &key)
Definition: DtSTLUtilities.h:129
void remove_from_container(C &_container, T *pT)
Definition: DtSTLUtilities.h:112
_Fn op
Definition: DtSTLUtilities.h:69
void destroy_from_container(C &_container, T *pT)
Definition: DtSTLUtilities.h:102
T * get_from_map(std::map< K, T * > &_map, const K &key)
Definition: DtSTLUtilities.h:121
result_type operator()(void) const
Definition: DtSTLUtilities.h:58
void destroy_all_from_unordered_set(boost::unordered_set< T * > &_set)
Definition: DtSTLUtilities.h:157
_Base::argument_type argument_type
Definition: DtSTLUtilities.h:49
Definition: DtSTLUtilities.h:83
void destroy_all_from_map(std::map< K, T * > &_map)
Definition: DtSTLUtilities.h:165
std::unary_function< typename _Fn::argument_type, typename _Fn::result_type > _Base
Definition: DtSTLUtilities.h:48
void operator()(T *obj)
Definition: DtSTLUtilities.h:85
void destroy_all_from_list(std::list< T * > &_list)
Definition: DtSTLUtilities.h:149
#define Assert(exp)
Definition: DtAssert.h:25