C ++ ha una funzione (non riesco a capirne il nome proprio), che chiama automaticamente costruttori corrispondenti di tipi di parametri se i tipi di argomento non sono quelli previsti.
Un esempio molto semplice di ciò è chiamare una funzione che prevede un std::string
con un const char*
argomento. Il compilatore genererà automaticamente il codice per invocare il std::string
costruttore appropriato .
Mi chiedo, è male 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 avvisare Clang o GCC?