2016-09-29 2 views
-2

私が考えていたSTLは、標準実装しました。しかし、プラットフォームは重要ですか?私はそれがWindows/Linux/Unix/Mac上で動作すると思っていた。私はWindows以外のものでは動かないと言っている人がいる。C++ STLまたはTR1(boost :: tr1ではなく)はWindows上でのみ動作しますか? TR1はないかもしれませんけれども

私に知らせてください。

-TIA

+5

Peobleあなたナンセンスを伝えるか、あなたは彼らが言っていたものを権利を取得しませんでした。 –

+0

STLとTR1はともに1994年と2005年のライブラリ*仕様*です。これらは実装ではありません。誰でも任意のプラットフォームで好きなものを実装できます。なぜ、この古代の死んだものについて話しているのですか? C++標準ライブラリには、STLとTR1の両方の多くの有用な側面が含まれています。実際の使用可能な実装は、現代のすべてのC++コンパイラに付属しています。 –

答えて

1

HPとシリコングラフィックスのために働いたときにはありません、STLは(C++標準ライブラリと混同しないように)アレクサンダー・ステパノフによって開発されました。 STLの後半はC++標準ライブラリに含まれていたため、C++標準ライブラリのSTLとテンプレート化されたコンテナが混乱することがありました。 IIRCない初期のMicrosoftのC++コンパイラによる必要な機能の欠如にかかわら

二STLの実装(SGI)は、任意の標準準拠ののC++コンパイラで動作するように設計されました。 (私は90年代後半にそれを試してみようと思います)。 C++の標準ライブラリでは、compiler intrinsicsが必要になるため、 '標準実装'はできません。 (IIRCは原子操作のためのものですが、わかりやすく編集したりコメントします)

Visual Studioに同梱されているC++標準ライブラリの実装は、Windowsの*だけで動作し、おそらくMicrosoftのC++コンパイラ。他の実装は、他のコンパイラや他のプラットフォームでも動作します。 Windowsの10のx64用の標準ライブラリのようにバージョンC++は、Windowsの他の変形にコンパイル越えることができ

* Visual Studioは、組み込みのWindows 7 ARM上では動作しません。

+0

コンパイラがintristic関数を使用する必要があるSTLの使用例を挙げることはできますか?私は確信している、私はちょうど1つを思い付くことはできません。 – user3104201

+0

@ user3104201上記以外のものはありません。 –

+0

ミューテックスを使ってアトミック操作を実装できます(非常に非効率的です)。 std :: is_podを正確にコンパイラのサポート(例えば何種類がPODではありませんが、それは再び非効率的だと仮定しても安全です。)なしで実装することはできません。 –

関連する問題