constructeur et paramètre par référence constante
	
	
		Bonjour,
décidemment, 2 ans de C# et je n'y comprend plus rien au c++ :aie:
Prenons le code suivant:
	Code:
	
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 
 | struct Foo
{
	Foo( const std::string & str ) { cout << str << endl; }
};
 
void f( const std::string & str )
{
	cout << str << endl;
}
 
int main()
{
	f( "test" ); // ok
	Foo( "test" ); //ok
	std::string test= "test";
	f( test ); //ok
	Foo( test ); // erreur
} | 
 Pourquoi est-ce que la dernière ligne ne compile pas?
En plus mon compilateur (VS 2010) est complètement perdu, l'erreur qu'il me donne est sans rapport: 
	Citation:
	
		
		
			error C2371: 'test' : redefinition; different basic types
			
		
	
 il croit que j'essaie de redéfinir la variable test.
Sauriez-vous me dire pourquoi cette dernière ligne ne compile pas?
Il me semblait que le cast en référence constante était automatique.