2011-04-25 23 views
10

我的目的是在靜態庫中重新使用一些C++ STL實現進行iOS開發。使用C++ STL進行iOS開發的任何限制?

正如我們所知,iOS設備基於ARM6/7系列,對於某些編譯器選項,它與* 86系列不同。

對於移動開發,我們更喜歡在不同的平臺上重用一些C++代碼,例如iOS,Android甚至PC後端。

所以在這裏問題知道一些問題或限制,爲此目的。

感謝


C++ STL只是指一些流行的版本,我不希望覆蓋所有STL庫,我只是想知道這種情況下,一些民衆關心的問題。感謝您指出任何內容。

+1

當你說「某些STL實現」時,你的意思是「任何STL實現」或「一個特定的STL實現」?因爲AFAIK,Xcode附帶的STL與iDevices完美協作。只要你自己不執行彙編代碼,我不會看到什麼不能工作。 – zneak 2011-04-25 02:19:38

回答

8

使用標準化工具的主要目的是實現可移植性。只要您按照預期使用庫,而不依賴標準之外的行爲,不應該有任何問題將其移植到具有良好C++實現的任何平臺上。

iOS上的標準庫實現與Mac OS上的標準庫實現相同。應該沒有區別。

ARM vs x86應該沒有任何區別。稱爲STL的C++標準庫的一部分完全由模板組成,因此「標準模板庫」。在高級數據結構上進行模板化,但都排除了彙編語言技巧。

+2

有一點需要注意,當你需要發生這樣的轉換時,你應該確保從STL集合轉換到Cocoa集合。儘管聽起來很呆板,但我還是看到過幾個例子,他們試圖將STL壓入不屬於可可的區域,創造出超出必要的工作量,並以低質量的產品結束。 – matthias 2011-04-25 04:01:33

2

不 - 在爲我以前的僱主工作時,我們使用C++編寫的整個協議棧(有一些STL)用於我們的桌面客戶端,以引導iPhone客戶端的開發。工作很好。