[問題] stlport 與 msvc stl 衝突問題 已解決

看板C_and_CPP (C/C++)作者 (天亮damody)時間12年前 (2014/02/06 16:37), 編輯推噓2(2014)
留言16則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) msvc 11 visual studio 2012 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) stlport 問題(Question): 我用 stlport::sort 對 std::vector 做操作時編譯不過 stl/_algobase.h(315): error C2665: 'stlpx_std::priv::__copy_backward' : 沒有任何 2 多載可以轉換所有引數型別 預期的正確結果(Expected Output): 編譯過 錯誤結果(Wrong Output): 編不過 程式碼(Code):(請善用置底文網頁, 記得排版) http://ideone.com/DN8Mtf 補充說明(Supplement): 完整錯誤訊息: http://ideone.com/9WE5qe 想知道怎麼解決這個問題, 本來想自己改, 但發現傳入的參數就已經是 template 了, 應該會直接 抓到型別 才對? -- 標題 [情報] Nowitzki:等我轉身,球已在空中 VirgilDu :MWP : 等我轉身 發現哈登已倒在地上 12/08 16:07 推 vcooter :樓上XD 12/08 16:10 推 Skycrane :樓樓上XD 12/08 16:13 推 jw0311 :樓樓樓上XD 12/08 16:15 推 z581105 :樓樓樓樓上 XD 12/08 16:22 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.118.175.37

02/06 16:50, , 1F
STLPort FAQ 2.3 建議不要混用兩個以上的 STL 實作
02/06 16:50, 1F

02/06 16:51, , 2F
主要理由是內部結構不盡相同, 要搞定是非常麻煩的事
02/06 16:51, 2F

02/06 16:51, , 3F
既然你都用了 STLport 那就不要用 vc 的 STL 了
02/06 16:51, 3F

02/06 16:57, , 4F
可是理論上sort不是只要符合iterator的需求就能用嗎?
02/06 16:57, 4F

02/06 16:58, , 5F
如果他靠內部結構,這不是代表自製container就不能用了?
02/06 16:58, 5F

02/06 17:41, , 6F
應該不是不行. 只是像你一般自製容器的 iterator 要繼承
02/06 17:41, 6F

02/06 17:41, , 7F
stl::iterator 之類的, 至少會有 namespace 問題.
02/06 17:41, 7F

02/06 17:41, , 8F
繼承 stl::iterator 的就只能在 stl 內用.
02/06 17:41, 8F

02/06 17:44, , 9F
不過我對 stlport 不熟, 只是猜的.
02/06 17:44, 9F
加入新的 template 方法 問題是 無法將參數 4 從 'std::random_access_iterator_tag' 轉換成 'const stlpx_std::random_access_iterator_tag &' 原來是 iterator tag 抓錯了~ 加入新的 template 解決: http://ideone.com/3k4qW4 ※ 編輯: damody 來自: 140.118.175.37 (02/08 17:24)

02/08 20:03, , 10F
不建議你這樣解決.
02/08 20:03, 10F

02/08 20:04, , 11F
問題還是 namespace 的對應
02/08 20:04, 11F

02/08 20:06, , 12F
如果是 Forward iterator 就會爆炸?
02/08 20:06, 12F

02/09 16:22, , 13F
不會吧 功能最少的就是 forward iterator
02/09 16:22, 13F

02/09 16:36, , 14F
不是功能少不少的問題. 是之後不小心用到會爆炸
02/09 16:36, 14F

02/09 16:38, , 15F
應該還是正面表列 stl 的 iterator_tag 比較好
02/09 16:38, 15F

02/09 16:42, , 16F
你這樣設計失去了 iteartor_tag 的用意
02/09 16:42, 16F
文章代碼(AID): #1Iyqc-ri (C_and_CPP)
文章代碼(AID): #1Iyqc-ri (C_and_CPP)