[問題] Rvalue Reference
遇到的問題(Question):
我在學習 Rvalue Reference 的用法 (程式碼如下)
裡面重點是兩個 operator+
候選一是普通的作法,候選二是 Rvalue Reference 的作法
裡面 str1+str2+str3+str4; 這句
str1 + str2 -> tmp 呼叫候選一,產生暫時物件,沒問題
tmp + str3 -> tmp 呼叫候選二,不會再產生新暫時物件,沒問題
tmp + str4 -> tmp 我想,應該要呼叫候選二,但是卻呼叫了候選一
餵入的資料(Input):
NaN
希望的正確結果(Expected Output):
只有在 str1+str2 的時候呼叫候選一
之後的都呼叫候選二
跑出來的錯誤結果(Wrong Output):
在呼叫候選二之後,再做 operator+,就會呼叫候選一
I don't know why?
開發平台(Platform): (例: VC++, Gcc, OpenGL, Linux, ...)
gcc 4.5 on Ubuntu 10.04
程式碼(Code): (請善用置底文標色功能)
http://nopaste.csie.org/bf332
補充說明(Supplement):
Thank you all!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.29.207
※ 編輯: nowar100 來自: 140.112.29.207 (12/10 01:25)
→
12/10 01:32, , 1F
12/10 01:32, 1F
→
12/10 01:34, , 2F
12/10 01:34, 2F
→
12/10 01:35, , 3F
12/10 01:35, 3F
→
12/10 01:35, , 4F
12/10 01:35, 4F
→
12/10 01:36, , 5F
12/10 01:36, 5F
→
12/10 01:37, , 6F
12/10 01:37, 6F
→
12/10 01:38, , 7F
12/10 01:38, 7F
→
12/10 01:40, , 8F
12/10 01:40, 8F
→
12/10 01:40, , 9F
12/10 01:40, 9F
→
12/10 01:40, , 10F
12/10 01:40, 10F
→
12/10 01:41, , 11F
12/10 01:41, 11F
→
12/10 01:41, , 12F
12/10 01:41, 12F
→
12/10 01:48, , 13F
12/10 01:48, 13F
→
12/10 01:48, , 14F
12/10 01:48, 14F
→
12/10 01:49, , 15F
12/10 01:49, 15F
→
12/10 01:50, , 16F
12/10 01:50, 16F
→
12/10 01:50, , 17F
12/10 01:50, 17F
→
12/10 01:52, , 18F
12/10 01:52, 18F
→
12/10 02:10, , 19F
12/10 02:10, 19F
推
12/11 02:18, , 20F
12/11 02:18, 20F
→
12/11 02:20, , 21F
12/11 02:20, 21F