Bonjour,

je n'arrive pas à compiler (sous Visual Studio 2010) lorsque j'utilise une map avec une string. J'ai écris un bout de code qui vous montre le problème si vous essayez de compiler :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "stdafx.h"
#include <iostream>
#include <map>
 
using namespace std;
 
class Personne
{
public:
	Personne(string nom) {cout << _nom << endl; }
	void sePresenter()
	{
		cout << "Je suis : " << _nom.c_str() << endl;
	}
 
private:
	string _nom;
};
 
 
int _tmain(int argc, _TCHAR* argv[])
{
	Personne* p = new Personne("toto"); 
 
	map<string, Personne*> groupe;
	pair<string, Personne*> pp("toto", p);
 
	groupe1.insert ( pp );
 
	system("PAUSE");
 
	return 0;
}
A priori ce n'est pas très compliqué, mais la ligne insert ne compile pas :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
error C2784: 'bool std::operator <(const std::_Tree<_Traits> &,const std::_Tree<_Traits> &)'*: impossible de déduire l'argument modèle pour 'const std::_Tree<_Traits> &' à partir de 'const std::string'
Pourtant, ma syntaxe me semble correcte ?

Merci par avance aux membres éclairés pour leur avis !