次のコードがあるとします。
template <typename T>
struct Wrapper {
T value;
Wrapper(T val) : value(val) {}
}
int main() {
Wrapper<int> x(42);
int y = x; // need solution for y = x.value
return 0;
}
割り当てを実装する方法はありますか
int y = x;
y = x.value を意味します。
代入演算子自体のオーバーロードは、代入の左側のオブジェクトに適用され、2 つの引数を持つフレンド関数は標準で許可されていないため、不可能であることはわかっています。
他の演算子をオーバーロードしたり、いくつかの特別なトリックを使用したりすることによってこれが不可能な場合、次のように Wrapper クラスによって提供される get メソッドを呼び出す以外に、どのようにこれを実装しますか?
int y = x.get();