C ++ ha una funzione (non riesco a capire il nome corretto di essa), che chiama automaticamente i costruttori corrispondenti dei tipi di parametro se i tipi di argomento non sono quelli attesi.
Un esempio molto semplice di ciò è chiamare una funzione che si aspetta un std::string
con un argomento const char*
. Il compilatore genererà automaticamente il codice per richiamare il costruttore std::string
appropriato.
Mi sto chiedendo, è pessimo per la leggibilità, come penso che sia?
Ecco un esempio:
class Texture {
public:
Texture(const std::string& imageFile);
};
class Renderer {
public:
void Draw(const Texture& texture);
};
Renderer renderer;
std::string path = "foo.png";
renderer.Draw(path);
Va bene? O va troppo lontano? Se non dovessi farlo, posso in qualche modo far avvertire Clang o GCC?