问题描述
|
是否可以保证C ++ std IO可以在所有台式机和移动OS上移植(我对iOS和Android感兴趣)?
在各个平台上,std IO的实现是否有所不同,还是相当统一?如果不同,那么是否会由于平台的SDK而发生(换句话说-SDK是否提供了这些不同的实现)?
谁提供这些实施?谁是作者?有人更新吗?
文档在哪里?
解决方法
是否有任何保证C ++ std
IO将可在所有台式机上移植
和移动操作系统(我对iOS感兴趣
和Android)?
不,不能保证所有标准库都能正确实现这些平台。
标准IO的实现是否不同
跨平台,或者说
制服?如果不同,那么
这是由于平台的SDK
(换句话说-做SDK的提供
那些不同的实现)?
这是不同的。不同平台上的I / O有很大不同。
谁提供这些实施?谁
是作者吗?有人更新吗
他们?文档在哪里?
编译器实施者或平台所有者可以提供它们。 C ++标准描述了库必须执行的操作。
,我认为您没有看到标准库的强大功能。它们旨在提供一组通用功能,可在所有符合标准的编译器中使用。例如,如果我编写以下代码:
#include <iostream>
int main(int a,char** s)
{
std::cout << \"Hello World\" << std::endl;
return 0;
}
它将由任何符合标准的编译器进行编译。您会挂在电话上,well1ѭ在每种平台上的工作方式都不同-当然是的。但这就是它的美丽-为什么您必须关心?在Windows上,如果使用MS Visual C ++进行编译,则该编译器将具有正确的实现(该标准不关心),以支持上述标准的标准格式编写方式。同样,在Linux上,GCC将具有正确的代码来写入任何实现,而在Solaris上,CC会执行相同的操作。
您不必担心或坦率地关心。平台的处理由用于该平台的编译器提供。您可以使用一个不错的干净的高级界面。
您是否在乎Java VM如何处理每个平台的详细信息?您不需要,也不必担心,当您执行“ 2”时,它将被适当地写入屏幕(或该VM的任何内容)。那你为什么挂在这里呢?
您所了解的是,您在特定平台上使用的编译器是否将提供标准库中的所有功能(即是否完全符合标准),如果不提供,则缺少什么以及如何解决。它。坦白地说,其他都没有关系!
至于你是否不喜欢它,那就花点钱买像Roguewave这样的东西吧-坦白说,这是在撒钱,但是撒钱是你的钱……
,标准库就是那个标准。它是由标准定义的。每个符合标准的编译器都必须提供它。因此,保证是它可以在符合标准的实现中移植(是否为目标平台提供了一个完全不同的问题)。它与平台SDK无关(是否使用一个平台SDK无关紧要-可观察到的行为必须相同)。
,标准的概念(因此称为std)是,无论您在什么平台上,它都应得到尊重和统一。
一些开发人员提供了支持全部或部分std库的设备,这实际上取决于他们如何实现。
这是特定于平台的,并且可能在每个平台的SDK文档中提供,很可能随SDK一起提供或在供应商的网站上提供。