→ akasan:那幹嘛不 return const A*? 12/20 18:53
→ POSIX:這部份我不熟, 所以 .... 是該朝這個方向去找解法嗎 @@ 12/20 18:56
→ purincess:我覺得, 如果你要用const_cast把那個item的constness給 12/20 18:57
→ purincess:去掉, 你這個function宣告成const本身就有點小毛病 因 12/20 18:58
→ purincess:為這個function有可能造成object的(bitwise?)constness 12/20 18:59
→ purincess:改變. 12/20 18:59
→ purincess:希望我沒弄錯你的意思@@" 12/20 18:59
→ POSIX:喔喔喔~~ 主要是la這個container 在這function 內我不想改 12/20 19:06
→ POSIX:動他的內容, 所以配合const func 用const_iterator 來作 12/20 19:06
→ POSIX:可是從const func 牽動const_iterator, 再影響到return val 12/20 19:07
→ POSIX:就好像會這麼噁心 似乎是要用return const value 方式才合理 12/20 19:08
→ johnhmj:你的簽名檔是不是米国国歌《星條旗》? 12/20 19:41
→ POSIX:=_=" 第一次有人發現 ..... 這麼噁心的歌詞你也看得懂 12/20 19:42
→ purincess:以前的簽名檔也有中華民國國旗歌不是 XD 12/20 19:45
推 tomap41017:推三樓講的那邊,已經是const function語意上就要做到 12/20 20:31
→ tomap41017:不然其實怪怪的@@" 12/20 20:31
→ POSIX:如果我把這func宣告程 const A* func() const { } 的方式 12/20 20:38
→ POSIX:func內的 const_iterator所指到obj 要cast成為 const A* 12/20 20:39
→ POSIX:這樣的作法對嗎?? 12/20 20:39
→ POSIX:還是說 我用cast把事情想簡單了!!!(英雄 陳道明口氣) 12/20 20:41
→ POSIX:換成宣告一個ptr, 把他當作最後回傳用 和iterator做的事情 12/20 20:42
→ POSIX:分開來 這樣會不會比較好 @@" 12/20 20:42
→ purincess:如果是const A* 你可以直接return &*i . 現在問題是, 你 12/20 20:48
→ purincess:這個function的caller會不會更動那個A object? 我一開始 12/20 20:48
→ purincess:的推文的意思就是, 如果return的A object是會被亂搞的, 12/20 20:48
→ purincess:你這個function就不能確保(bitwise) constness, 就不適 12/20 20:49
→ purincess:合宣告為const function. 當然, 如果你想要/需要那個 12/20 20:49
→ purincess:被return的A object不會被亂搞, 宣告成const pointer是 12/20 20:49
→ purincess:個不錯的作法. 12/20 20:49
→ POSIX:soga, 這樣我大概懂了!!! 感謝各位推文大大 12/20 21:00
推 legnaleurc:我的作法可能是在找不到的時候 throw 一個 exception 12/20 21:19
推 loveme00835:excpetion +1 找不到最好還是用例外, 硬要回傳值光想 12/20 21:25
→ loveme00835:出不合法的標兵值就夠你想的, 之前看到一份stack<T> 12/20 21:27
→ loveme00835:pop() 回傳 (T)NULL; 當 T=string, 你知道的...作者 12/20 21:29
→ loveme00835:還用噁心的特化來解決這問題 12/20 21:29
→ POSIX:throw 的方式不錯!!! 12/20 21:39
→ POSIX:我不敢想像那噁心的T的偏特化 ~"~ 12/20 21:44
→ POSIX:其實我上面例子所犯的似乎是effective c++ 提到的 12/20 21:47
→ POSIX:avoid returning "handles" to internal data. 12/20 21:47