私は持っていMessageable::receiveMessage(Message&)
ます。私がそれを使うとき、私はそれを渡すことができると期待します、私はそれを関数から返されたMessage
ものを渡しMessage
ます、しかし私がそれをするとき私は得ます
error: no matching function for call to 'Messageable::receiveMessage(Message)'
no known conversion for argument 1 from 'Message' to 'Message&'
オーバーロードされた<<を使用した場合にのみ機能します(メッセージ&を返すため、つまりreceiveMessage(myMsg<<value);
:)
私は何をしている可能性がありますか/私は間違っている可能性がありますか、それとも関数から返される値を許可することが標準にないだけですか?参照引数を宣言すると、オブジェクト自体を使用でき、自動的にキャストされると思いました(違いだけで、コピーされません)。関数からのものかどうかの違いはわかりません。
(この質問は以前に回答された可能性が高いことは承知していますが、私の検索ではリンカーエラー「未定義の参照」しか見つかりませんでした)
障害のあるコードはreceiveMessage( action->second->message() );