はSTDの変換機能が含まれている次のクラスを考えてみましょう:: string型:std :: stringで変換関数を使用できないのはなぜですか?
class SomeType
{
public:
SomeType(char *value)
{
_str = value;
}
operator std::string()
{
return std::string(_str);
}
private:
char *_str;
};
は、次のコードはエラーでコンパイルに失敗:なし演算子「==」は
int main(int argc, char* argv[])
{
SomeType a("test");
if (a == std::string("test")) // ERROR on this line
{
int debug = 1;
}
return 0;
}
これらのオペランドと一致しません
私はstd :: stringオペランドを受け入れる演算子==メソッドを定義することができましたが、なぜ変換関数は機能しませんか?
エラーは何ですか? –
@Aniketエラーは問題です。 –
これらの回答が参考になった場合は、受け付けてください。 – Borgleader