状況によっては、値を選択するか参照セマンティクスを選択するかについての感覚がありません(まだ、私は願っています)。適用できる経験則はありますか?
私は通常、組み込みデータ型(char、int、bool、doubleなど)以外のすべての参照を選択します。ただし、関数から参照を返すことができない場合があるため、ポインターを使用する必要があります。次の関数はこの例です。
Foo bar()
{
Foo f;
f.do_stuff();
return f;
}
boost :: shared_ptrを使用してFooオブジェクトを保存しますが、オブジェクトの操作が非常に見苦しくなります。私は現在、10個を超える要素がほとんどないdequeを返す関数を調べています(これは私が想定していることですが、確認する方法はありません)。これを値で返すのは大丈夫でしょうか?私の考慮事項は時期尚早の最適化の場合ですか?