問題タブ [c++11]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - C++0x 標準は C++ Auto 複数宣言をどのように定義していますか?
うーん、今後の C++0x 標準での複数の auto 宣言について少し混乱しています。
どこかで読んだことは許可されていません。その理由は (?) でした。連続する宣言が最初の宣言と同じ型 (例では int) を持つべきかどうかが明確ではなかったためです。
可能な翻訳 1:
エラーの原因
可能な翻訳 2:
それはどのように標準に帰着しますか?
私の視点で言えば、翻訳#2は、少なくとも私が通常のC ++ユーザーである私にとっては、最も異議を唱えるものでした。つまり、「宣言されたすべての変数は同じ宣言された型です」という意味で、魔女は自動です。翻訳#1は、私にとって本当に直感的ではありません。
さようならQbProg
c++ - C++0x アトミック テンプレートの実装
同様のテンプレートが Intel の TBB に存在することは知っていますが、Google や Boost ライブラリには実装が見つかりません。
c++ - C ++ 0x:標準アルゴリズムの範囲オーバーロード?
とは対照的に
次の標準が標準アルゴリズムの範囲オーバーロードを提供することを期待していますか?
Boostの範囲イテレータは似たようなものでありiseq()
、TC++PL3eで言及されているBjarneStroustrupも同じ考えです。見つけた最新のドラフトを見ましたが、範囲の過負荷については言及されていませんでした。
c++ - マルチスレッド時の shared_ptr によるコピーオンライト
shared_ptr
マルチスレッドがない場合、 (boost または tr1 のいずれかから) を使用するためのコピー オン ライトの実装
unique()
は簡単です。マルチスレッド化する場合、どの変更を行う必要がありますか? 参照カウントはアトミックであるため、インスタンスの作成、コピー構築、読み取り、および破棄を特に気にすることなく実行できると想定していますshared_ptr
。一般に、特にコピーオンライトを実装する場合は、それらを更新するのはどうですか? ロックは必要ですか?または使用しますboost::atomic_store
か(なぜ文書化されていないのですか)?shared_ptr
または、 (オプションではない)の完全にアトミックなバージョンを待ち
ますか?
編集:
sfossen、役に立つ返信をありがとう。
したがって、現在のスレッドのみが所有するように、COW を介してデタッチした後にのみポイント先オブジェクトを変更する場合、ロックは必要なく、アトミック ref で shared_ptr を使用する場合、COW 実装はシングルスレッドのものと同じように見えると結論付けます-カウントします。
c++ - C++0x は、UTF-8 バイト シーケンスとの間の std::wstring 変換をサポートしていますか?
C++0x が UTF-8、UTF-16、および UTF-32 リテラルのサポートを追加することを確認しました。しかし、3 つの表現の間の変換はどうでしょうか。
コードのどこでも std::wstring を使用する予定です。しかし、ファイルやネットワークを扱うときは、UTF-8 でエンコードされたデータを操作する必要もあります。C++0x もこれらの操作をサポートしますか?
c++ - テンプレート化されたtypedef?
C および C++ のガベージ コレクターである libgc を使用しています。STL コンテナをガベージ コレクション可能にするには、gc_allocator を使用する必要があります。
書く代わりに
書かなければならない
次のようなものを定義する方法はありますか
少し前に確認したところ、それは不可能であることがわかりました。しかし、私は間違っていたかもしれませんし、別の方法があるかもしれません。
このようにマップを定義することは、特に不快です。
になる
編集:マクロの使用を試みた後、次のコードがそれを壊すことがわかりました:
テンプレート化された型定義内のコンマは、マクロ引数の区切り記号として解釈されます。
したがって、内部クラス/構造体が最適なソリューションのようです。
C++0X での実行方法の例を次に示します。
c++ - C++0x 機能をサポートする C++ コンパイラ?
C++0x 機能をサポートする C++ コンパイラはどこにありますか?
c++ - タプルを可変個引数テンプレート関数の引数に展開するにはどうすればよいですか?
可変個引数のテンプレート引数を持つテンプレート化された関数の場合を考えてみましょう:
今、私はt
値のタプルを持っています。func()
タプル値を引数として使用して呼び出すにはどうすればよいですか? 関数を使用したbind()
関数オブジェクトと、現在は廃止されたさまざまなドキュメントの関数について読んだことがあります。GNU GCC 4.4 の実装にはクラス内の機能があるようですが、この件に関するドキュメントはほとんどありません。call()
apply()
call()
bind()
手書きの再帰的なハックを提案する人もいますが、可変個引数テンプレート引数の真価は、上記のような場合に使用できることです。
誰かが解決策を持っていますか、それについてどこで読むべきかについてのヒントはありますか?
c++ - 次の C++ 標準の準備
BOOST_FOREACH
Boost ライブラリのユーザーに、提案された新しい C++ 標準 (別名 C++0x) への移植性のためにコードを準備するために何をしているのか (もしあれば) を尋ねるように促されました。たとえば、 を使用する場合、次のようなコードを記述しますかshared_ptr
。
名前空間の問題もあります - 将来的には , 名前空間shared_ptr
の一部になりstd
ます - どのように対処しますか?
これらの質問に興味を持ったのは、弾丸をかじってブーストを真剣に学び始めることに決めたからです。また、自分のコードでベスト プラクティスを使用したいと考えています。
正確には答えの洪水ではありません - これは問題ではないということですか? とにかく、答えてくれた人に感謝します。私は何もしないようにアドバイスされるのが好きなので、jalfsの回答を受け入れています!