重複の可能性:
ファンクターの戻り値のタイプを推測する方法は?
次の例を考えます。
<type>& operator+(const <type>& rhs) {
// *this.data + rhs
}
タイプ<タイプ>のオブジェクトの合計の値を返すにはどうすればよいですか?
私がコーディングした場合:
<type>& operator+(const <type>& rhs) {
<type> cell;
switch(rhs.type {
case DOUBLE:
{
cell.data = (double)cell.data + (double)rhs.data;
}
return cell;
}
一時的なスタック値を返し、エラーメッセージを受け取ります。
私がコーディングした場合:
<type>& operator+(const <type>& rhs) {
*this.data = *this.field + rhs.data;
return *this;
}
追加の意図ではないこれを上書きします。
これは単なる例です。「実際の」コードでは、任意の数の入力データ型を追加(減算、...)できる必要があります。これにより、戻り値がいくつかの型のいずれかに対応できる必要があります。 。