- 693 名前:デフォルトの名無しさん mailto:sage [2021/07/11(日) 00:57:15.79 ID:5nx6GB9W.net]
- lvalueをmoveせよ
さて、2. はどうしたらいいだろう。moveコンストラクタを実装したものの、コンパイラは2. の場合には、moveコンストラクタを呼び出してくれない。なぜなら、コンパイラは、プログラマの脳内仕様を読んではくれないからだ。tmpが、その後に使われていないかどうかは、コンパイラは静的に決定できないのである。 そこで、プログラマが意図を伝えてやらなければならない。 X b( static_cast<X &&>(tmp) ) ; この様に、rvalueにキャストしてやれば、moveコンストラクタを呼び出すことが出来る。
|

|