シェアード ポインタの受け渡し: 参照または値による
シェアード ポインタを受け入れる関数を呼び出すとき、開発者はポインタを渡すかどうかの選択に直面します。 const 参照または値によって。パフォーマンス上の理由からは const 参照で渡す方が望ましいように見えますが、この決定にはさらなる検討が必要です。
2011 C 以降の「Ask Us Anything」セッションの専門家によると、一般に共有ポインタを渡す利点はありません。価値観によって。オブジェクトの所有権を共有することが目的でない限り、const 参照による受け渡しが推奨されるアプローチです。
Const 参照による受け渡しの理由
const 参照による受け渡しにより、共有ポインタは関数内で不変のままであるため、その値が保持され、意図しない変更が防止されます。これは、オブジェクトの共有所有権を象徴する共有ポインタの意図された動作と一致しています。
値で渡してはいけない理由
値で渡すと、最新の C コンパイラは、共有ポインタのコピーを最適化して、基礎となる管理オブジェクトの不必要な重複を取り除きます。値による受け渡しは、共有ポインターの移動を最適化でき、管理対象オブジェクトの所有権をコピーせずに関数に転送できる場合にのみ有益になります。ただし、この最適化は、使用されている特定の C バージョンに依存します。
追加の考慮事項
2012 GoingNative の「Ask Us Anything」パネルでは、このトピックについてさらに詳しく説明されています。この議論から得られる重要な点は次のとおりです。
以上がシェアード ポインタは参照または値で渡す必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。