什么是"Portable C++"?

ren*_*que 7 c++

在互联网上,我看到声称用便携式C++编写的库,好像它是一个(可能是非官方的)标准.

什么是可移植的C++有一个精确的定义,如果有,它是什么?

我不是要求编写可移植代码的常用做法,但如果真的有什么我们称之为"可移植的c ++".

Lea*_*ros 9

便携式C++很模糊.

但是,如果你想实现便携性,仅使用C++标准库,没有特定于平台的代码(比如read,write系统调用在Linux上),没有编译器特定的内在(如GCC的C/C++扩展),或内联汇编特定CPU .

请记住,即使这可能不是"便携式".您可以为各种平台(包括嵌入式)编译C++,并非所有这些平台都可能附带标准C++库,或者具有支持最新和最好的C++特性的编译器(C++ 11,C++ 14)想到了).

无法实现真正​​的可移植性,但是,您可以为最常见的平台实现可移植性,或承诺支持这些X平台,并为每个平台构建特定于平台的解决方案(这是相当多的工作,并导致很多#ifdef OS1代码).

  • 这里有一个很大的灰色区域,可以移动到其他POSIX系统*.Windows是一只奇怪的鸟.还需要一些注意和注意来避免编译器特定的功能. (2认同)