在 boost::python 中公开 boost::scoped_ptr

发布于 2024-08-27 20:57:41 字数 253 浏览 11 评论 0原文

我收到一个编译错误,指出 scoped_ptr 的复制构造函数是私有的,具有以下代码片段:

class a {};

struct s
{
  boost::scoped_ptr<a> p;
};

BOOST_PYTHON_MODULE( module )
{
  class_<s>( "s" );
}

不过,此示例适用于共享_ptr。如果有人知道答案,那就太好了。谢谢

I am getting a compile error, saying that the copy constructor of the scoped_ptr is private with the following code snippet:

class a {};

struct s
{
  boost::scoped_ptr<a> p;
};

BOOST_PYTHON_MODULE( module )
{
  class_<s>( "s" );
}

This example works with a shared_ptr though. It would be nice, if anyone knows the answer. Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦罢 2024-09-03 20:57:41

boost::scoped_ptr 的语义禁止复制,而 shared_ptr 则旨在复制。您收到的错误是编译器告诉您某些代码(宏扩展?)正在尝试复制 scoped_ptr 但库不允许进行复制。

The semantics of boost::scoped_ptr prohibit taking copies, while shared_ptr is intended to be copied. The error you are getting is the compiler telling you that some of the code (macro expansion?) is trying to copy the scoped_ptr but that the library does not allow the copy to be made.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文