C ++ STL或TR1(不是boost :: tr1)只能在Windows上运行吗?

时间:2016-09-29 09:17:57

标签: c++ visual-studio stl visual-c++-2010 tr1

我认为STL是标准实现,但TR1可能不是。但平台是否重要?我以为它适用于Windows / Linux / Unix / Mac。我有人说它不适用于Windows以外的任何其他工作。

请告诉我。

-TIA

1 个答案:

答案 0 :(得分:1)

不,STL(不要与C ++标准库混淆)是由Alexander Stepanov在为HP和Silicon Graphics工作时开发的。之后的大部分STL被包含在C ++标准库中,因此有时候C ++和C ++标准库中的模板化容器会混淆。

第二个STL实现(SGI)旨在与任何标准的兼容C ++编译器一起使用,但由于缺乏必需的功能,IIRC不是早期的Microsoft“C ++”编译器。 (我似乎记得在90年代后期尝试使用它)。 C ++标准库现在需要一些compiler intrinsics,因此不存在“标准实现”。 (IIRC这些用于原子操作,但如果你更了解则编辑或评论)

因此Visual Studio附带的C ++标准库的实现只适用于'Windows'*,可能只适用于Microsoft的C ++编译器。其他实现将与其他编译器和其他平台一起使用。

* Visual Studio C ++可以交叉编译到Windows的其他变体,因此适用于Windows 10 x64的标准库版本不适用于Windows 7 ARM嵌入式。