2017-01-01 111 views
1

我在Windows上,假設我想爲我的項目使用不同的標準C++庫實現 - 比如說libstdC++或libC++。替換Visual Studio標準庫

  1. 有沒有辦法說服我的Visual Studio中使用它,而不是MSVC庫,所以我仍然可以使用#include <algorithm>,而不是#include <custom/algorithm>I believe,我可以通過簡單地將我的頭文件添加到項目中來實現它,但我正在尋找更多的「系統方式」方式,所以我不會爲每個單個項目重複它。
  2. 它實際上是否值得花費 - 特別是現代C++功能可用/標準兼容?
  3. 如果是這樣,那麼替換的缺點是什麼?除了使用其他實現中不存在的某些功能的可能性?
  4. 特別是,this question的答案提到可能存在與其他庫的兼容性問題 - 這是否僅適用於Linux世界,還是我也會在Windows上遇到問題?

注意:這主要是一個理論問題 - 我很好MSVC庫,但我真的很想知道更多關於不同的stdlib實現。

+1

*「我很好,MSVC庫」*這種sorta回答你的第二個問題,不是嗎?如果MSVC足夠好,你不需要修復它。 –

+1

libstdC++或libC++不能與Visual Studio C++編譯器一起使用,而無需重大移植工作。 –

回答

3

從理論上講,換出stdlib實現並不是不可能的。使用clang,您可以在libC++(clang's)和libstdC++(GCC's)之間進行選擇。但是,在實踐中,stdlib實現通常與其所附帶的編譯器的內部相關聯,特別是當涉及到新增的C++特性時,這對於許多編譯器來說並不比Visual Studio更真實。

你可以使它與大量的黑客工作?也許。它值得嗎?我非常懷疑它。即使你成功了,你也會犧牲一個可重複建造的環境,並依靠一些深深的藝術。您的項目不會重複使用。

在你的問題中,沒有跡象表明你爲什麼認爲你需要切換實現,但似乎不太可能出現任何原因都會帶來麻煩。

相關問題