C ++には、引数の型が予期されたものでない場合に、パラメーターの型の一致するコンストラクターを自動的に呼び出す機能があります(適切な名前はわかりません)。
これの非常に基本的な例はstd::string
、const char*
引数付きのを期待する関数の呼び出しです。コンパイラーは、適切なstd::string
コンストラクターを呼び出すコードを自動的に生成します。
読みやすさに関しては、私が思うほど悪いのでしょうか。
次に例を示します。
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);
いいですか?それとも行き過ぎですか?私がそれをするべきではない場合、どういうわけかClangまたはGCCにそれについて警告させることができますか?