Boost logo

Boost :

From: Dan Nuffer (dnuffer_at_[hidden])
Date: 2002-11-08 01:37:52


David Abrahams wrote:
> Dan Nuffer <dnuffer_at_[hidden]> writes:
>>6. How can I get python indexing and slicing to work on OW_String? I
>>couldn't see any information about this in the docs.
>
>
> The same way you do it in Python: supply a "__getitem__" and a
> "__getslice__" method.
>

Thanks, this works great!

>
>>7. Do I need to expose the copy constructor and assignment operator
>>via Boost.Python?
>
>
> You don't need assignment at all, and the copy constructor is exposed
> automatically unless you have specified that your class is
> noncopyable. You may want to build a copy() method, as Ralf suggests
> we ought to do automatically in
> http://aspn.activestate.com/ASPN/Mail/Message/c++-sig/1386367 (I'm now
> beginning to think we should just generate copy() automatically).
>

I'm not quite sure what I'm doing here. I couldn't find an example that
does this. This doesn't compile:
.def("copy", init<const OW_String&>())

This doesn't work:

OW_String OW_String_copy(const OW_String& s)
{
     return s;
}

...
.def("copy", &OW_String_copy)

>>> t = copy.deepcopy(s)
Traceback (most recent call last):
   File "<stdin>", line 1, in ?
   File "/usr/local/lib/python2.2/copy.py", line 182, in deepcopy
     y = _reconstruct(x, reductor(), 1, memo)
   File "/usr/local/lib/python2.2/copy.py", line 305, in _reconstruct
     args = deepcopy(args, memo)
   File "/usr/local/lib/python2.2/copy.py", line 186, in deepcopy
     y = copierfunction(x, memo)
   File "/usr/local/lib/python2.2/copy.py", line 226, in _deepcopy_tuple
     y.append(deepcopy(a, memo))
   File "/usr/local/lib/python2.2/copy.py", line 182, in deepcopy
     y = _reconstruct(x, reductor(), 1, memo)
   File "/usr/local/lib/python2.2/copy_reg.py", line 57, in _reduce
     raise TypeError, "can't pickle %s objects" % base.__name__
TypeError: can't pickle instance objects

How am I supposed to do this?

Thanks,
Dan Nuffer


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk