個人的な選択だと思います。ここにいくつかの個人的なサンプルがあります:
読み取り専用入力、出力への参照を取得し、入力を処理した後、それを出力にプッシュします。オプションのエラー結果がわかりやすい。
bool function(const type& input, type& output){
output = input;
return true;
}
読み取り専用入力を取得し、それを出力に割り当て、出力を変更して返します(C ++ 11移動最適化)。
type function(const type& input){
type output = input;
return output;
}
type output = function(input);
ここでは、引数としてオブジェクトの新しいコピーを強制し、それを使用して返すことができます(コピーを変更したくない場合は、C ++ 11が最適です)。参照:速度が欲しい、値を渡す。。
type function(type input){
// modify input
return input;
}
type output = function(input);
同じ引数で入力と出力。注意して使用してください。エラーを返すことができます。
bool function(type&put){return true; }
それはあなたのデザインに依存します。エラーは必要ありませんか?...可動式のものを使用してください。エラーが必要ですか?...戻り値にアクセスできるようにするものを使用してください。または、既存の慣行に従うだけで、それぞれが次のようにパフォーマンスをどのように助けたり、ペナルティを課したりできるかを知ってください。
// this makes a pointless copy for the input (use const ref here)
bool function(type input, type& output){
output = input;
return true;
}
(正しい方法は)
bool function(const type& input, type& output){
output = input;
return true;
}
PS:独学のC++開発者の個人的な意見:)