2017-05-02 6 views
-4

を失う:私はintにタイムコードオブジェクトをキャストするたびに実行することができるはずですキャストは、私は、次のしている私のTimeCode.hで精密C++

inline TimeCode::operator int() const; 

しかし、ときに私のようなものを実行します。

(int) firstTimeCode > (int) scndTimeCode 

コンパイラは私に次のエラーがスローされます。

cast from 'TimeCode*' to 'int' loses precision [-fpermissive] 

が問題とどのようにそれを固定することが可能であることをだれにも知っていますか?事前にどうもありがとうございました !エラーメッセージで

+0

あなたは 'TimeCode'ではなく' int'にポインタアドレスをキャストしています。 – Cameron

+0

ポインタを比較し、演算子 '' '<''' or '''>' ''をオーバーロードします。 –

答えて

6

ルック - それはあなたがTimeCode*intに変換していることを伝えるだが - つまり、あなたのオペランドの少なくとも一方がTimeCode、実際のTimeCodeからポインタです。そのため、最初にポインタを逆参照して、オペレータを正しく呼び出す必要があります。

関連する問題