簡體   English   中英

跨平台如何成為標准C ++庫?

[英]How cross platform is the standard C++ library?

iOS和Android上是否可以使用C ++標准庫(例如std :: string stream)(使用JNI / NDK)? 如果是這樣:

它支持的程度如何? 桌面特定功能如控制台如何處理? 它有多快/可靠? 有多少其他移動平台? 在移植到移動平台(例如iOS)時,我可以依靠使用std庫修改很多代碼嗎?

兩者都提供C ++標准庫。 此外,iOS已經有了很長一段時間的C ++ 11。

這兩個平台 - 基本上都是基於POSIX的 - 具有控制台IO的概念,但它們都不能在用戶界面中提供對它的訪問,也不能(至少開箱即用)直接運行控制台應用程序。

因此,很明顯您不能將控制台IO用於與您的應用程序進行任何類型的用戶交互 - 除非您使用平台的用戶界面API構建它。

在可移植性方面,兩個平台都不應該有任何問題 - 它是Android上的GNU Std G ++庫和iOS上的Clang C ++庫。 在iOS上,可移植性不是問題,但您可能很有興趣為Android構建JNI綁定。

但實際上,您只能用C ++構建應用程序的后端。 所有用戶界面都是明顯不可移植的,並且通常需要以UI框架的語言實現。

Windows Phone 8允許本機應用程序,而C ++似乎是實現它們的首選語言.BlackBerry OS 10基本上是QNX,它也是POSIX兼容的。

據我所知,標准庫應該是所有平台的標准庫。 現在他們的內部實現可能會或將會有所不同,但他們應該執行它們被引入的任務。

通常std lib非常有效,快速且經過良好測試,因此它應該是可靠的。

實際的問題是std lib應該包含在C ++實現中,但無論是否包含std lib,它都完全取決於實現C ++的供應商。 即使它們不包含std lib,您也很有可能找到該平台的替代實現。 然后,您所要做的就是將該庫與您的代碼鏈接起來。

假設有一個支持主要功能的C ++編譯器。

即使這是不可能的,您也可以將所需的std函數作為自定義lib移植到該特定平台。

希望這可以幫助,

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM