bug in RC
[anna.git] / include / anna / core / util / EqualTo.hpp
1 // ANNA - Anna is Not Nothingness Anymore                                                         //
2 //                                                                                                //
3 // (c) Copyright 2005-2015 Eduardo Ramos Testillano & Francisco Ruiz Rayo                         //
4 //                                                                                                //
5 // See project site at http://redmine.teslayout.com/projects/anna-suite                           //
6 // See accompanying file LICENSE or copy at http://www.teslayout.com/projects/public/anna.LICENSE //
7
8
9 #ifndef anna_core_util_EqualTo_hpp
10 #define anna_core_util_EqualTo_hpp
11
12 namespace anna {
13
14 /**
15    Predicado que sirve para aplicar a las busquedas sobre vectores de objetos
16    generica.
17
18    \param K Tipo de dato por el que vamos a comparar.
19    \param T Clase de la que esta el contenedor que vamos a recorrer.
20
21    La clase T debe tener definido el operador == para el tipo const K.
22
23    \see find_if
24 */
25 template <class K, class T> class EqualTo {
26 public:
27   EqualTo(const K key) : a_key(key) {;}
28   EqualTo(const EqualTo<K, T>& other) : a_key(other.a_key) {;}
29   bool operator()(T* t) const throw() { return *t == a_key; }
30   bool operator()(const T* t) const throw() { return *t == a_key; }
31
32 private:
33   const K a_key;
34 };
35
36 }
37
38 #endif
39
40