Is relying on implicit argument conversion considered dangerous?
https://softwareengineering.stackexchange.com/questions/190716
-
06-11-2019 - |
Pregunta
C++ has a feature (I cannot figure out the proper name of it), that automatically calls matching constructors of parameter types if the argument types are not the expected ones.
A very basic example of this is calling a function that expects a std::string
with a const char*
argument. The compiler will automatically generate code to invoke the appropriate std::string
constructor.
I'm wondering, is it as bad for readability as I think it is?
Here's an example:
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);
Is that just fine? Or does it go too far? If I shouldn't do it, can I somehow make Clang or GCC warn about it?
No hay solución correcta
Licenciado bajo: CC-BY-SA con atribución
No afiliado a softwareengineering.stackexchange