を与えます。 私は、.cppファイル内の関数の行に次のエラーを取得:私は解決策のためのWebを検索していると私はtemplate
キーワードがoperator<< <UIDCategory::GoodType>(goodRatio.goodType)
への呼び出しに必要であることが判明は、私は次のコードを持っているエラー
Rules.cpp(21): error C2677: binary '<': no global operator found which takes type 'UIDCategory' (or there is no acceptable conversion)
operator<<
が実際にテンプレートであることを示していますので、私はそれを追加しましたが、エラーは消えません。私はここで間違って何をしていますか?
ここで考えているのは、typedefが新しい型を導入しないため、過負荷解決に使用できないという制限を回避することです。私は単純に次の過負荷を導入したときに問題に遭遇しました:std::ostream& operator<<(std::ostream& str, const GoodType& goodType)
。このヘッダーはstd::ostream& operator<<(std::ostream& str, const unsigned short& goodType)
と同等であるため、str << aGoodType
はあいまいです(std
のものと衝突します)。
私のコードは、明示的に< <オペレータの「オーバーロード」は< <演算子のオーバーロードテンプレートを作成して、明示的にUIDCategory
の異なるメンバーのためにそれを専門とすることにより、使用するものを述べるためにユーザーを有効にする試みであります。
エラーと私が達成しようとしていることの両方について助けていただければ幸いです。
[MCVE]を提供する必要があります。 – Jonas