[解決済み] std、tr1、boostの違い(名前空間やライブラリとしての違い)は何ですか?
質問
最初はどれも同じだと思っていたのですが、それは間違いでした。そこで、どなたかこの3つの違いを簡単に説明していただけませんか?例えば
-
std::bind
( 最新作、次世代C++ ) -
std::tr1::bind
( 古い、C++ std の拡張 ) -
boost::bind
( 完全に別のライブラリ )
または
std::shared_ptr
,
std::tr1::shared_ptr
および
boost::shared_ptr
, ...など
更新情報
bind
,
shared_ptr
は、私の質問を明確にするのに役立つ例です。私の意図は、これら3つの名前空間の一般的な差異を理解することでした。3つの名前空間のすべてに存在するライブラリがいくつかあり、どうやら
bind
はその一例であり、また
shared_ptr
.
どのような名前空間にこだわればよいのでしょうか?個人的には
std::
C++の次の標準になるので(C++0x)。
解決方法は?
1 -
std::bind
が標準的な名前です。C++11に準拠したライブラリでは、この名前を使用することになります。すべてのリスト
標準化されたC++のライブラリ
.
2 -
std::tr1::bind
はC++ Technical Report 1の名前空間です。C++03 から C++11 までの間は
C++テクニカルレポート1
というように、ライブラリの追加や機能強化が提案されています。これらのほとんどは当時すでに Boost に存在しており、これらのライブラリの変更のいくつかは C++11 標準に採用されました。
<regex>
と
<functional>
(を含む)。
std::bind
). その
std::tr1
名前空間は、標準化されたすべてのライブラリとは対照的に、作業中の状態のライブラリを区別するために使用されました。
std
という名前空間があります。
3 -
boost::bind
は
bind
の中に
boost
名前空間を使用している場合は
ブースト
ライブラリです。Boostは、TR1にあるもの、C++11のstdライブラリにあるものよりも、はるかに多くのものを包含しています。すべての
1.52.0 時点で Boost に含まれるライブラリ
TR1にあったもののほとんどは標準化され、C++11にあります。
std
の名前空間で定義されたスレッドサポートのように、Boostの構成要素から適応されたライブラリがTR1で言及されたものよりも多く含まれています。
<thread>
.
現在、何が使えるか、どの名前空間が使えるかを定義するものの一部は、コンパイラに依存します。思い出せませんが、より最近のGCC-g++の実装では、この名前空間を使うようになったと思います。
std
名前空間は新しい C++11 ライブラリに対応しますが、それを有効にするには別のコンパイラーフラグが必要な場合があります。しかし、それを有効にするには別のコンパイラーフラグが必要かもしれません。
std::tr1
という名前空間があります。Visual C++ 2010 では、以前は
std::tr1
を通常の
std
名前空間を使用していましたが、Visual C++ 2008 ではまだ
std::tr1
.
関連
-
[解決済み】C++エラー。アーキテクチャ x86_64 に対して未定義のシンボル
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】C++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】リンカーエラーです。"リンカ入力ファイルはリンクが行われていないため未使用"、そのファイル内の関数への未定義参照
-
[解決済み】CMakeエラー at CMakeLists.txt:30 (project)。CMAKE_C_COMPILER が見つかりませんでした。
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] C++11の'typedef'と'using'の違いは何ですか?
-
[解決済み] g++とgccの違いは何ですか?
-
[解決済み] C++のファンクターとその使い方とは?
-
[解決済み] std::move()とは何ですか?また、どのような場合に使用するのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】C++エラーです。"配列は中括弧で囲まれたイニシャライザーで初期化する必要がある"
-
[解決済み】関数名の前に期待されるイニシャライザー
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】クラステンプレートの使用にはテンプレート引数リストが必要です
-
[解決済み】ファイルから整数を読み込んで配列に格納する C++ 【クローズド
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み】std::cin.getline( ) vs. std::cin
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない