問題タブ [effective-c++]

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.

0 投票する
5 に答える
980 参照

c++ - この宣言の typedef を理解する方法

最近、「Effective C++ 」という本を読みましたが、項目 35 に typedef に関する宣言があり、混乱しています。

だから私の最初の質問は、なぜ著者はここで前方宣言を使用するのですか? 具体的な理由はありますか?

2 番目の質問は、typedef 宣言をどのように理解し、どのように使用するかです。私はただのようなことを知っていますtypedef int MyInt;

0 投票する
2 に答える
951 参照

c++11 - can pimpl イディオムの impl クラスにはデストラクタがありますか?

私は効果的な現代のcppでpimplを学びます.いくつかの検索を行った後、pimplイディオムのimplクラスのデストラクタ実装について誰も話していません.それは不要ですか?

0 投票する
1 に答える
75 参照

c++ - 参照推定はどのように機能しますか?

これに重複する可能性があります。

私はEffective Modern C++を読みました。でItem 1、ユニバーサル リファレンスのケースを見つけました。 最後の例では、VS2013 でテストを行いました。ここに画像の説明を入力

f(27);

出力は次のとおりです。

std::forward<T>(param)テンプレート関数内で、 withoutがprocess(int& x)呼び出されることがわかりましたが、本によると、型はparam右辺値参照でprocess(int&& x)なければならないので、呼び出す必要があります。しかし、そうではありません。私は何かを誤解していますか?他のスレッド

から見つけた転送リファレンスは次のとおりです。 ここに画像の説明を入力

0 投票する
0 に答える
140 参照

c++ - STL アロケータの正当な使用: Scott Meyers

Scott Meyers による効果的な STL を読んでいます。項目 11 には、アロケーターに関する以下のテキストがあります。

アロケーターの有用性を考えると、クラス Heap1 と Heap2 で識別される 2 つのヒープがあるとします。各ヒープ クラスには、割り当てと割り当て解除を実行するための静的メンバー関数があります。

さらに、いくつかの STL コンテナーのコンテンツを異なるヒープに配置したいとします。繰り返しますが、問題ありません。まず、実際のメモリ管理に Heap1 や Heap2 などのクラスを使用するように設計されたアロケータを作成します。

次に、SpecialHeapAllocator を使用してコンテナーの要素をまとめてクラスター化します。

この例では、Heap1 と Heap2 がオブジェクトではなく型であることが非常に重要です。STL は、同じ型のさまざまなアロケーター オブジェクトを使用してさまざまな STL コンテナーを初期化するための構文を提供しますが、それが何であるかを説明するつもりはありません。これは、Heap1 と Heap2 が型ではなくオブジェクトである場合、それらは等価でないアロケーターになり、アロケーターの等価制約に違反するためです。

上記の私の質問は

  1. 「同じタイプの異なるアロケータ オブジェクトで異なる STL コンテナを初期化する」ための STL 構文は何ですか?

  2. Heap1 と Heap2 がオブジェクトである場合、それらが同等でないアロケータであるのはなぜですか?