c++ STL或TR1(不是boost:: TR1)只在Windows上工作吗?

Does C++ STL or TR1(not boost::tr1) work only on Windows?

本文关键字:TR1 Windows 工作 只在 STL 不是 boost c++      更新时间:2023-10-16

我认为STL是一个标准实现,尽管TR1可能不是。但平台重要吗?我认为它可以在Windows/Linux/Unix/Mac上运行。有人说它只能在Windows上运行。

请告诉我。

tia

不,STL(不要与c++标准库混淆)是由Alexander Stepanov在HP和Silicon Graphics工作时开发的。许多STL后来被包含到c++标准库中,因此有时STL和c++标准库中的模板化容器会被混淆。

第二个STL实现(SGI)旨在与任何标准兼容的c++编译器一起工作,尽管IIRC不适合早期的微软"c++"编译器,因为缺乏必要的功能。(我似乎记得在90年代末尝试过玩这个游戏)。c++标准库现在需要一些编译器的内在特性,所以不可能有"标准实现"。(IIRC这些是原子操作,但如果你知道更好的编辑或注释)

所以Visual Studio自带的c++标准库的实现只能在"Windows"*上工作,而且可能只能在微软的c++编译器上工作。其他实现将与其他编译器和其他平台一起工作。

*Visual studio c++可以交叉编译到Windows的其他变体,因此Windows 10 x64的标准库版本将无法在Windows 7 ARM嵌入式上工作。