Предоставление boost :: scoped_ptr в boost :: python - PullRequest
4 голосов
/ 05 апреля 2010

Я получаю ошибку компиляции, говоря, что конструктор копирования scoped_ptr является закрытым со следующим фрагментом кода:

class a {};

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

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

Этот пример работает с shared_ptr. Было бы неплохо, если бы кто-нибудь знал ответ. Спасибо

1 Ответ

6 голосов
/ 05 апреля 2010

Семантика boost::scoped_ptr запрещает получение копий, а shared_ptr предназначена для копирования. Ошибка, которую вы получаете, заключается в том, что компилятор сообщает вам, что часть кода (расширение макроса?) Пытается скопировать scoped_ptr, но библиотека не позволяет сделать копию.

...