smart-pointers

    2

    1答えて

    unique_ptrをマルチスレッドで使用することについていくつかの心配があります。mutexはありません。私は以下の簡単なコードを書きました。見てください。 unique_ptr != nullptrをチェックすると、スレッドセーフなのでしょうか? class BigClassCreatedOnce { public: std::atomic<bool> var; //

    5

    2答えて

    私のアプローチは、次のとおりです。 class SomeClass { std::vector<std::unique_ptr<MyObject>> myObjects; public: void takeOwnership(MyObject *nowItsReallyMyObject) { myObjects.emplace_back(std::mo

    2

    1答えて

    スマートポインタのクラスがあります:テスト用 template <typename T> class UniquePtr { public: UniquePtr(T* obj) : obj(obj) { } UniquePtr(const UniquePtr& ptr) = delete; UniquePtr(UniquePtr&&

    0

    1答えて

    私が書いているプログラムでは、いくつかのスレッドを作成して処理するクラスがあります。構築後、このインスタンスには、スレッドがメンバ関数を呼び出すことができる別のクラスのオブジェクトが与えられます。 私は生のポインタ(単にスマートポインタを置き換える)を扱うことになっていますが、スマートポインタにアクセスできるので代わりに使用しようとしました。多くの進歩なしに。 いくつかの検索は、shared_pt

    0

    1答えて

    を格納された配列を反復することはできません、私は次のコードがあるとします。 std::shared_ptr<char*> getString() { char hello[] = {'h','e','l','l','o'}; return std::make_shared<char*>(hello); } int main() { std::share

    2

    1答えて

    プレースメントnewを使用してboost::shared_ptrをリセットし、追加のメモリ割り当てを回避しながら、std::unique_ptrに対して同じではないと仮定して、新しいを使用することについてはthis postを読んでいますか?私の質問は、std::unique_ptrがタイプBase*であり、Derived*を指すことができる場合、Derivedのクラスのサイズが異なる場合、pla

    0

    1答えて

    ビルダーのデザインパターンとスマートポインタを学習しています。 私は自分のコードでsmart_ptrを使いこなそうとしています。しかし、私がunique_ptrを使ってmainにインスタンスを作成し、それをContractorオブジェクトに渡すと、エラーがスローされます。 私は、契約者クラスとmainのunqiue_ptrをshared_ptrに置き換えます。 progは正常に動作しますが、デスト

    2

    2答えて

    私は時代とともに移動しており、自分自身を使ってスマートポインタに自分自身を公開するという目的で新しいプロジェクトを開始するべきだと思った。私はunique_ptrの大きなプールに衝突コンポーネントを格納することを考えています。これらのコンポーネントは、const refによって、ptrs上で読み取り専用のopsを内部的に実行するクワッドツリーに渡されます。 私は実装の意図を反映するための簡単な例を

    -1

    1答えて

    練習プロジェクトでは、サービスタイプクラスの概念と同様に、非同期/スレッド方法論を学習しています。オブジェクトのofstreamへの共有ポインタのベクトルがありますが、そのベクトル内の重複をチェックする方法はありません。 明確にするために、プロジェクトのモジュールごとに1つのログファイルを用意していますが、同じファイルに対して2つのストリームオブジェクトが追加された場合、出力にマングリングが発生す

    0

    1答えて

    これは未定義の動作ですか?ポインタがどこにも指していない場合、どのようにして割り当てられたリソースを削除できますか? // Example program #include <iostream> #include <memory> class A { public: A() {std::cout << "ctor"<<std::endl;}; ~A(){std