1

我将一些代码从 ACE 转移到 Poco。我是多线程设计的新手,所以让我有点困惑!

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

我不能像这样重写它,因为 Poco::AutoPtr 只接受一个参数作为类模板

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

我该怎么写?

4

1 回答 1

0

我不确定是什么Arc::AutoPtr,因为我在 ACE 文档中找不到类似的内容。但是,如果它与 Poco 的相应 typedef 相同,ACE_Refcounted_Auto_Ptr则可能是typedef Poco::SharedPtr<ResultSet> QueryResult;. 但是从文档中不清楚 Poco 中的 SharedPtr 是否实现了线程安全引用计数,所以你必须小心。

Poco::AutoPtr实际上是一个侵入式智能指针,需要指向类型的支持(类似于boost::intrusive_ptr)。

于 2013-01-19T13:59:14.200 回答