2017-01-01 8 views
1

私はWindows上にあり、私のプロジェクトには標準のC++ライブラリの異なる実装、例えばlibstdC++やlibC++を使いたいとします。 Visual Studio標準ライブラリを置き換えてください

  1. ではなく、それをMSVCライブラリのをを使用するために私のVisual Studioを説得する方法はありますので、私はまだ#include <algorithm>ない#include <custom/algorithm>を使用することができますか? I believe私はプロジェクトにヘッダーのパスを追加するだけで実現できますが、私はもっと「システム的に」なる方法を探していますので、プロジェクトごとに繰り返すことはありません。
  2. 実際には、現代的なC++の機能が利用可能であるか、またはスタンダードに準拠しているという点で実際には価値がありますか?
  3. もしそうなら、他の実装にはないいくつかの機能を使用する可能性があります。
  4. this questionへの回答は、他のライブラリとの互換性の問題があるかもしれないと言及しています - これはLinuxの世界にのみ適用されますか、あるいはWindowsでも問題がありますか?

注:これは主に理論上の質問です。私はMSVCライブラリで問題ありませんが、stdlibのさまざまな実装についてもっと知りたいと思っています。

+1

* "私はMSVCライブラリに問題ありません" *そのソーシャルは2番目の質問に答えますね。 MSVCが十分あれば修正する必要はありません。 –

+1

libstdC++またはlibC++は、大きな移植作業なしにVisual Studio C++コンパイラで使用することはできません。 –

答えて

3

理論的には、stdlibの実装を交換することは不可能ではありません。 clangでは、libC++(clang)とlibstdC++(GCC)を選択できます。

しかし、実際には、stdlibの実装は、特に新しく追加されたC++機能に関しては、コンパイラの内部にかなり根本的に結びついていることが多く、Visual Studio以外の多くのコンパイラではそれほど真実ではありません。

多くのハッキングで動作させることができますか?多分。それは価値があるだろうか?私は非常にそれを疑う。あなたが成功したとしても、再現可能なビルド環境を犠牲にし、深く暗い芸術に頼ることになります。あなたのプロジェクトは再利用できません。

実装を切り替える必要があると思われる理由は何も示されていませんが、何らかの理由で問題が生じる可能性は低いと思われます。

関連する問題