私は興味があります。私は署名const&parameterから&parameterへの無効な変換はナンセンスに見えますか?
CommandLogFilter::CommandLogFilter(QSharedPointer<LogServer> logServer, QObject *parent,
void (*preprocessValidCommand)(CommandDescriptor &descriptor))
とグラムからエラーを取得してコンストラクタの三番目のパラメータとして署名
void printCommandReceived(const CommandDescriptor &descriptor)
と関数へのポインタを渡してい++コンパイラー:私の理解で
error: invalid conversion from ‘void (*)(const CommandDescriptor&)’ to ‘void (*)(CommandDescriptor&)’ [-fpermissive]
以外への参照-constオブジェクトは、constオブジェクトのパラメータを参照するための引数として使用可能である必要があります。したがって、非constオブジェクト参照を受け入れる関数への型ポインタを持つパラメータは、constオブジェクト参照でさえも受け入れる関数へのポインタ型の引数よりも満足すべきであり(暗黙の変換を行わなければならない)
どこが間違っていますか?
"何かへのポインタ"があり、 "他のものへのポインタ"を渡したいと思います。そのような場合は、ポイント先の型が似ている場合でも暗黙の変換はありません。 –