私のプロジェクトでは、スマートポインタと生ポインタが混在しています。いくつかの関数は、生の関数とスマート関数の両方で機能する必要があります。関数では、ポインタには->
,=
および*
しか使用されません。私の質問は、私は複数の引数を持っている場合、または私は私がスマートと生ポインタの両方を渡すことができる何かがある場合、私はすべての関数を2回以上書く必要がある場合です。私は、ラッパークラスarroudポインタまたはこれのようなものについて考えていた。私が推薦する何生ポインタとスマートポインタの混合関数のオーバーロード
2
A
答えて
0
(この質問は、コード例から多くの利益を得るであろう、しかし、私は答えることをしようとします。)
は参照またはのconst参照を通過した後、*
演算子を使用することです関数に引数を渡すときには、どちらの種類のポインタでも使用できます。
あなたの関数は生やスマートで動作するはずなので、これは不可能であることは自明ではありません.Dは、実装が所有権を持って何もする必要がないということです。何らかの理由でshared_ptr
のコピーを取るように。これは所有権を気にしないので、参考になるように書かれたほうがよいということです。
関連する問題
- 1. C関数ポインタの混乱
- 2. スワップ関数 - ポインタ - 混乱
- 3. スマートポインタから生ポインタを取得する
- 4. C++:関数オーバーロードの混乱と宣言の順序
- 5. C++生またはスマートポインタとテンプレート関数の作成が
- 6. オーバーロードされた関数ポインタをオーバーロードされたテンプレート関数の引数として渡します。
- 7. オーバーロードの解決、名前検索と関数ポインタ
- 8. ポインタの代わりにスマートポインタ
- 9. 生ポインタからスマートポインタへのリンクリストの変換
- 10. スマートポインタと派生クラス
- 11. スマートポインタまたは生ポインタを持つリンクリストのノード?
- 12. 関数のオーバーロードがC++で混乱する
- 13. 関数のオーバーロード
- 14. $()関数のオーバーロード
- 15. ==関数のオーバーロード
- 16. 混合コード - 関数メンバポインタ
- 17. C++オーバーロードされた関数ポインタのあいまいさ
- 18. オーバーロードされたメンバ関数の関数ポインタを渡しますか?
- 19. ポインタの混乱へのポインタ
- 20. ポインタと配列の混乱
- 21. 関数のオーバーロード時のオーバーロード時のエラーcmath関数C++
- 22. ポインタの混乱
- 23. 共有ポインタの引数のあいまいさによる関数のオーバーロード
- 24. バリデーショナルテンプレート関数のオーバーロード
- 25. rvalue関数のオーバーロード
- 26. R - 関数のオーバーロード
- 27. Typescript:関数のオーバーロード
- 28. constオーバーロードと共有ポインタ
- 29. 派生クラスのメンバ関数ポインタ
- 30. C++の関数ポインタとコールバック関数
'='あなたはどのタイプから割り当てますか?いつも同じタイプですか?所有権は手に負えない、一般的にどうするかわからない。それ以外の場合は、テンプレートを使用するか、消去を入力します。 – Yakk