Ver Mensaje Individual
  #1 (permalink)  
Antiguo 03/07/2012, 14:59
fabian_n7
Usuario no validado
 
Fecha de Ingreso: febrero-2012
Mensajes: 24
Antigüedad: 12 años, 2 meses
Puntos: 0
Problema con std::map No matching function for call

Hola amigos, como estan? estoy haciendo un sistema y tengo un problema con el siguiente código:

Código C++:
Ver original
  1. class a
  2.     {
  3.  
  4.         public:
  5.                 a();
  6.                 ~a();
  7.                 void msj()
  8.                 {
  9.                     cout << "Mensaje de A\n";
  10.                 };
  11.  
  12.  
  13.     };
  14.  
  15.     int main(int argc, char* argv[])
  16.     {
  17.        
  18.  
  19.         typedef pair<char*,a*> parT;
  20.         map<char*,parT> pilaMap;
  21.  
  22.         a* objeto;
  23.         char* b = "zz";
  24.  
  25.         parT par(b,objeto);
  26.         pilaMap.insert(b,par);//esta es la linea que da error
  27.  
  28.  
  29.  
  30.         cin.get();
  31.  
  32.         return 0;
  33.     }

El resultado del compilador es el siguiente:


Código Apache:
Ver original
  1. /home/soporte/Escritorio/Capturador/Pruebas/main.cpp||In function &#8216;int main(int, char**)’:|
  2. /home/soporte/Escritorio/Capturador/Pruebas/main.cpp|104|warning: deprecated conversion from string constant to &#8216;char*’|
  3. /home/soporte/Escritorio/Capturador/Pruebas/main.cpp|107|error: no matching function for call to &#8216;std::map<char*, std::pair<char*, a*>, std::less<char*>, std::allocator<std::pair<char* const, std::pair<char*, a*> > > >::insert(char*&, main(int, char**)::parT&)’|
  4. /usr/include/c++/4.4/bits/stl_map.h|499|note: candidates are: std::pair<typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator, bool> std::map<_Key, _Tp, _Compare, _Alloc>::insert(const std::pair<const _Key, _Tp>&) [with _Key = char*, _Tp = std::pair<char*, a*>, _Compare = std::less<char*>, _Alloc = std::allocator<std::pair<char* const, std::pair<char*, a*> > >]|
  5. /usr/include/c++/4.4/bits/stl_map.h|539|note:                 typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator std::map<_Key, _Tp, _Compare, _Alloc>::insert(typename std::_Rb_tree<_Key, std::pair<const _Key, _Tp>, std::_Select1st<std::pair<const _Key, _Tp> >, _Compare, typename _Alloc::rebind<std::pair<const _Key, _Tp> >::other>::iterator, const std::pair<const _Key, _Tp>&) [with _Key = char*, _Tp = std::pair<char*, a*>, _Compare = std::less<char*>, _Alloc = std::allocator<std::pair<char* const, std::pair<char*, a*> > >]|
  6. ||=== Build finished: 1 errors, 1 warnings ===|


Creo que algo de lo que esta recibiendo el map no le esta gustando, pero no logro detectar que es, en que parte esta el inconveniente. por eso separe el código del sistema y lo reduje a lo que aquí les muestro para puntualizar y ver si podía sacar el error.

Desde ya muy agradecido por su ayuda.

PD: Como siempre antes me pase horas en Google buscando pero no encontre respuesta alguna :S

Saludos!

Última edición por fabian_n7; 03/07/2012 a las 17:43