
 Envoyé par 
deubelte
					 
				 
				
	
	| 12
 3
 4
 5
 
 |  
const std::string aSet =  std::string("EUROPE");
//Appel du constructeur par copie de la classe string
// En C++98, OUI, après un appel du constructeur string(const char * arg)
// Des optimisations sont possibles, qui feraient que certains appels seraient supprimés. | 
 
	
	| 12
 3
 4
 5
 
 |  
const std::string aSet =  "EUROPE";
//Appel du constructeur string(const char * arg)
//puis du constructeur par copie
// NON. Appel du constructeur string(const char * arg), et c'est tout | 
 
	
	| 12
 3
 4
 
 | const std::string aSet("EUROPE");
//Appel du constructeur de la classe string 
//dont la signature est string(const char * arg)
// OUI | 
  
	 
 Par ailleurs, dans ton premier exemple, j'écrirais plus simplement :
	
	std::string const PrefSetLevel(aSet == "0" ? "M" : "R");
 Voire (mais c'est de la micro optimisation, à ne faire qu'après bench positif) :
	
	std::string const PrefSetLevel(1, aSet == "0" ? 'M' : 'R');
 
						
					
Partager