Affidarsi alla conversione di argomentazioni implicite è considerata pericolosa?
https://softwareengineering.stackexchange.com/questions/190716
-
06-11-2019 - |
Domanda
C ++ ha una funzione (non riesco a capire il suo nome corretto), che chiama automaticamente i costruttori di corrispondenza dei tipi di parametri se i tipi di argomentazioni non sono quelli previsti.
Un esempio molto semplice di questo è chiamare una funzione che si aspetta a std::string
con un const char*
discussione. Il compilatore genererà automaticamente il codice per invocare l'appropriato std::string
costruttore.
Mi chiedo, è male per la leggibilità come penso?
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 dovrei farlo, posso in qualche modo far avvertire Clang o GCC?
Nessuna soluzione corretta
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a softwareengineering.stackexchange