替换Visual Studio标准库

时间:2017-01-01 15:51:51

标签: c++ visual-studio stl

我在Windows上,并且假设我想为我的项目使用不同的标准C ++库实现 - 比如libstdc ++或libc ++。

  1. 有没有办法说服我的Visual Studio使用它而不是的MSVC库,所以我仍然可以使用#include <algorithm>而不是#include <custom/algorithm>I believe我可以通过简单地将标题添加到项目中来实现它,但我正在寻找更“系统化”的方式,所以我不会为每个项目重复它。
  2. 它真的值得麻烦 - 特别是在现代C ++功能方面可用/标准兼容吗?
  3. 如果是这样,除了可能使用某些其他实现中没有的功能之外,还有什么可以替代?
  4. 特别是,this question的答案提到可能存在与其他库的兼容性问题 - 这是否仅适用于Linux世界,或者我也会在Windows上遇到问题?
  5. 注意:这主要是一个理论问题 - 我对MSVC库很好,但我真的想了解更多有关不同stdlib实现的信息。

1 个答案:

答案 0 :(得分:4)

理论上,交换stdlib实现并非不可能。使用clang,您可以选择libc ++(clang's)和libstdc ++(GCC's)。

然而,实际上,stdlib实现通常与它们附带的编译器的内部结构相当,特别是当涉及到新增的C ++特性时,对于许多编译器而言,这并不比Visual Studio更真实。

你能用很多黑客攻击它吗?也许。这值得吗?我非常怀疑。即使你成功了,你也会牺牲一个可重复的构建环境,并依赖于一些深刻的黑暗艺术。您的项目将无法重复使用。

你的问题中没有任何迹象表明你认为你需要切换实施的原因,但似乎不太可能出现任何理由值得这样做。