Boost Users :
From: Anand, Kumar (kanand_at_[hidden])
Date: 2006-05-23 22:45:43
Well marking the copy constructor as private is not required since dtor
is already marked as private.
You will not be able to copy construct by saying something like
A *a = new A();
A a' = A(*a) //This will fail because dtor of A is private.
However making the python wrapper class as boost::noncopyable works. It
seems, if you do not mark the wrapper class as "noncopyable", boost
python internally generates some code which requires public dtor.
[mailto:boost-users-bounces_at_[hidden]] On Behalf Of Dale McCoy
Sent: Wednesday, May 17, 2006 6:24 PM
Subject: Re: [Boost-users] Exposing Class with Private ctor and dtor
> A class has static method to create and a static method to destroy.
> constructors and destructor of the class is marked as private. How do
> expose such a class in Python?
> <snip code>
In the code you posted, the default constructor is indeed private, but
the copy constructor is not. Was that intentional? If so, then it's
still possible to write A otherA(A::create()); which requires public
access to ~A() in order to destroy otherA. If it was not intentional,
does explicitly privitizing the copy-constructor work? (Or make it
clear where Boost::Python wants to copy-construct an A?)
Boost-users mailing list
Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net