1

コードを ACE から Poco に転送しています。私はマルチスレッド設計に慣れていないので、少し混乱しています!

typedef Arc::AutoPtr<ResultSet, ACE_Thread_Mutex> QueryResult;

Poco::AutoPtr はクラス テンプレートとして 1 つの引数しか受け入れないため、このように書き直すことはできません。

typedef Poco::AutoPtr<ResultSet, Poco::Mutex> QueryResult;

どのように書けばよいですか?

4

1 に答える 1

0

Arc::AutoPtrACE のドキュメントにそのようなものが見つからなかったので、何が何なのかわかりません。ただし、同じACE_Refcounted_Auto_Ptr場合、対応する Poco の typedef はおそらくtypedef Poco::SharedPtr<ResultSet> QueryResult;. しかし、Poco の SharedPtr がスレッドセーフな参照カウントを実装しているかどうかは、ドキュメントから明らかではないため、注意が必要です。

Poco::AutoPtr実際には、ポイントされた型からのサポートを必要とする侵入型のスマート ポインターです ( に似ていboost::intrusive_ptrます)。

于 2013-01-19T13:59:14.200 に答える