[C++-sig] Re: with_custodian_and_ward clarification

David Abrahams dave at boost-consulting.com
Wed Feb 11 18:12:21 CET 2004


Stefan Seefeld <stefan.seefeld at orthosoft.ca> writes:

> hi there,
>
> I want to call a function that connects one object ('slave')
> to another ('master'). Looking through the documentation for
> the possible call policies, my best guess is to use
> 'with_custodian_and_ward'.
>
> void connect(Slave *s, Master *m) { s->connect(m);}
>
> ...
>
> def("connect",
>      make_function(connect, with_custodian_and_ward<1, 2>()));
>
>
> The docs say the lifetime of '2' is thus tied to the lifetime
> of '1'. I'm *guessing* it means that '2' will *at least* live
> as long as '1'. Is that correct ? (The docs could be a bit more
> explicit about that)

What docs are you looking at?

http://www.boost.org/libs/python/doc/v2/with_custodian_and_ward.html#introduction

  This header provides faciliites for establishing a lifetime
  dependency between two of a function's Python argument or result
  objects. 
  The ward object will not be destroyed until after the custodian as
  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  long as the custodian object supports weak references


-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com





More information about the Cplusplus-sig mailing list