1<html> 2<head> 3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 4<title>boost/python/object.hpp</title> 5<link rel="stylesheet" href="../../boostbook.css" type="text/css"> 6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1"> 7<link rel="home" href="../index.html" title="Boost.Python Reference Manual"> 8<link rel="up" href="../object_wrappers.html" title="Chapter 3. Object Wrappers"> 9<link rel="prev" href="boost_python_long_hpp.html" title="boost/python/long.hpp"> 10<link rel="next" href="boost_python_str_hpp.html" title="boost/python/str.hpp"> 11</head> 12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"> 13<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="" width="" height="" src="../../images/boost.png"></td></tr></table> 14<hr> 15<div class="spirit-nav"> 16<a accesskey="p" href="boost_python_long_hpp.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../object_wrappers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_python_str_hpp.html"><img src="../../images/next.png" alt="Next"></a> 17</div> 18<div class="section"> 19<div class="titlepage"><div><div><h2 class="title" style="clear: both"> 20<a name="object_wrappers.boost_python_object_hpp"></a><a class="link" href="boost_python_object_hpp.html" title="boost/python/object.hpp">boost/python/object.hpp</a> 21</h2></div></div></div> 22<div class="toc"><dl class="toc"> 23<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.introduction">Introduction</a></span></dt> 24<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_slice_nil">Class 25 <code class="computeroutput"><span class="identifier">slice_nil</span></code></a></span></dt> 26<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_attribute_policies">Class 27 <code class="computeroutput"><span class="identifier">const_attribute_policies</span></code></a></span></dt> 28<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_attribute_policies_s">Class 29 <code class="computeroutput"><span class="identifier">const_attribute_policies</span></code> 30 static functions</a></span></dt> 31<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_attribute_policies">Class 32 <code class="computeroutput"><span class="identifier">attribute_policies</span></code></a></span></dt> 33<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_attribute_policies_static_">Class 34 <code class="computeroutput"><span class="identifier">attribute_policies</span></code> static 35 functions</a></span></dt> 36<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_objattribute_policie">Class 37 <code class="computeroutput"><span class="identifier">const_objattribute_policies</span></code></a></span></dt> 38<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_objattribute_polici0">Class 39 <code class="computeroutput"><span class="identifier">const_objattribute_policies</span></code> 40 static functions</a></span></dt> 41<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_objattribute_policies">Class 42 <code class="computeroutput"><span class="identifier">objattribute_policies</span></code></a></span></dt> 43<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_objattribute_policies_stat">Class 44 <code class="computeroutput"><span class="identifier">objattribute_policies</span></code> static 45 functions</a></span></dt> 46<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_item_policies">Class 47 <code class="computeroutput"><span class="identifier">const_item_policies</span></code></a></span></dt> 48<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_item_policies_static">Class 49 <code class="computeroutput"><span class="identifier">const_item_policies</span></code> static 50 functions</a></span></dt> 51<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_item_policies">Class 52 <code class="computeroutput"><span class="identifier">item_policies</span></code></a></span></dt> 53<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_item_policies_static_funct">Class 54 <code class="computeroutput"><span class="identifier">item_policies</span></code> static functions</a></span></dt> 55<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_slice_policies">Class 56 <code class="computeroutput"><span class="identifier">const_slice_policies</span></code></a></span></dt> 57<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_slice_policies_stati">Class 58 <code class="computeroutput"><span class="identifier">const_slice_policies</span></code> static 59 functions</a></span></dt> 60<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_slice_policies">Class 61 <code class="computeroutput"><span class="identifier">slice_policies</span></code></a></span></dt> 62<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_slice_policies_static_func">Class 63 <code class="computeroutput"><span class="identifier">slice_policies</span></code> static functions</a></span></dt> 64<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_object_operators">Class 65 template <code class="computeroutput"><span class="identifier">object_operators</span></code></a></span></dt> 66<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_object_operators_">Class 67 template <code class="computeroutput"><span class="identifier">object_operators</span></code> 68 observer functions</a></span></dt> 69<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_object">Class 70 <code class="computeroutput"><span class="identifier">object</span></code></a></span></dt> 71<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_object_constructors_and_de">Class 72 <code class="computeroutput"><span class="identifier">object</span></code> constructors and destructor</a></span></dt> 73<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_object_modifiers">Class 74 <code class="computeroutput"><span class="identifier">object</span></code> modifiers</a></span></dt> 75<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_proxy">Class 76 template <code class="computeroutput"><span class="identifier">proxy</span></code></a></span></dt> 77<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_proxy_observer_fu">Class 78 template <code class="computeroutput"><span class="identifier">proxy</span></code> observer functions</a></span></dt> 79<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_proxy_modifier_fu">Class 80 template <code class="computeroutput"><span class="identifier">proxy</span></code> modifier functions</a></span></dt> 81<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.functions">Functions</a></span></dt> 82<dt><span class="section"><a href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.example">Example</a></span></dt> 83</dl></div> 84<div class="section"> 85<div class="titlepage"><div><div><h3 class="title"> 86<a name="object_wrappers.boost_python_object_hpp.introduction"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.introduction" title="Introduction">Introduction</a> 87</h3></div></div></div> 88<p> 89 Exposes the generic Python object wrapper class object, and related classes. 90 In order to avoid some potenential problems with argument-dependent lookup 91 and the generalized operators defined on object, all these facilities are 92 defined in namespace boost::python::api, and object is imported into namespace 93 boost::python with a using-declaration. 94 </p> 95</div> 96<div class="section"> 97<div class="titlepage"><div><div><h3 class="title"> 98<a name="object_wrappers.boost_python_object_hpp.class_slice_nil"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_slice_nil" title="Class slice_nil">Class 99 <code class="computeroutput"><span class="identifier">slice_nil</span></code></a> 100</h3></div></div></div> 101<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">slice_nil</span><span class="special">;</span> 102<span class="keyword">static</span> <span class="keyword">const</span> <span class="identifier">_</span> <span class="special">=</span> <span class="identifier">slice_nil</span><span class="special">();</span> 103</pre> 104<p> 105 A type that can be used to get the effect of leaving out an index in a 106 Python slice expression: 107 </p> 108<pre class="programlisting"><span class="special">>>></span> <span class="identifier">x</span><span class="special">[:-</span><span class="number">1</span><span class="special">]</span> 109<span class="special">>>></span> <span class="identifier">x</span><span class="special">[::-</span><span class="number">1</span><span class="special">]</span> 110</pre> 111<p> 112 C++ equivalent: 113 </p> 114<pre class="programlisting"><span class="identifier">x</span><span class="special">.</span><span class="identifier">slice</span><span class="special">(</span><span class="identifier">_</span><span class="special">,-</span><span class="number">1</span><span class="special">)</span> 115<span class="identifier">x</span><span class="special">[</span><span class="identifier">slice</span><span class="special">(</span><span class="identifier">_</span><span class="special">,</span><span class="identifier">_</span><span class="special">,-</span><span class="number">1</span><span class="special">)]</span> 116</pre> 117</div> 118<div class="section"> 119<div class="titlepage"><div><div><h3 class="title"> 120<a name="object_wrappers.boost_python_object_hpp.class_const_attribute_policies"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_attribute_policies" title="Class const_attribute_policies">Class 121 <code class="computeroutput"><span class="identifier">const_attribute_policies</span></code></a> 122</h3></div></div></div> 123<p> 124 The policies which are used for proxies representing an attribute access 125 to a const object. 126 </p> 127<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 128<span class="special">{</span> 129 <span class="keyword">struct</span> <span class="identifier">const_attribute_policies</span> 130 <span class="special">{</span> 131 <span class="keyword">typedef</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">key_type</span><span class="special">;</span> 132 <span class="keyword">static</span> <span class="identifier">object</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">key</span><span class="special">);</span> 133 <span class="special">};</span> 134<span class="special">}}}</span> 135</pre> 136</div> 137<div class="section"> 138<div class="titlepage"><div><div><h3 class="title"> 139<a name="object_wrappers.boost_python_object_hpp.class_const_attribute_policies_s"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_attribute_policies_s" title="Class const_attribute_policies static functions">Class 140 <code class="computeroutput"><span class="identifier">const_attribute_policies</span></code> 141 static functions</a> 142</h3></div></div></div> 143<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">object</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">key</span><span class="special">);</span> 144</pre> 145<div class="variablelist"> 146<p class="title"><b></b></p> 147<dl class="variablelist"> 148<dt><span class="term">Requires</span></dt> 149<dd><p> 150 key is an <a class="link" href="../glossary.html#ntbs">ntbs</a>. 151 </p></dd> 152<dt><span class="term">Effects</span></dt> 153<dd><p> 154 accesses the attribute of target named by key. 155 </p></dd> 156<dt><span class="term">Returns</span></dt> 157<dd><p> 158 An object managing the result of the attribute access. 159 </p></dd> 160<dt><span class="term">Throws</span></dt> 161<dd><p> 162 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 163 if a Python exception is raised. 164 </p></dd> 165</dl> 166</div> 167</div> 168<div class="section"> 169<div class="titlepage"><div><div><h3 class="title"> 170<a name="object_wrappers.boost_python_object_hpp.class_attribute_policies"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_attribute_policies" title="Class attribute_policies">Class 171 <code class="computeroutput"><span class="identifier">attribute_policies</span></code></a> 172</h3></div></div></div> 173<p> 174 The policies which are used for proxies representing an attribute access 175 to a mutable object. 176 </p> 177<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 178<span class="special">{</span> 179 <span class="keyword">struct</span> <span class="identifier">attribute_policies</span> <span class="special">:</span> <span class="identifier">const_attribute_policies</span> 180 <span class="special">{</span> 181 <span class="keyword">static</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span> 182 <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">del</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">target</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">key</span><span class="special">);</span> 183 <span class="special">};</span> 184<span class="special">}}}</span> 185</pre> 186</div> 187<div class="section"> 188<div class="titlepage"><div><div><h3 class="title"> 189<a name="object_wrappers.boost_python_object_hpp.class_attribute_policies_static_"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_attribute_policies_static_" title="Class attribute_policies static functions">Class 190 <code class="computeroutput"><span class="identifier">attribute_policies</span></code> static 191 functions</a> 192</h3></div></div></div> 193<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span> 194</pre> 195<div class="variablelist"> 196<p class="title"><b></b></p> 197<dl class="variablelist"> 198<dt><span class="term">Requires</span></dt> 199<dd><p> 200 key is an <a class="link" href="../glossary.html#ntbs">ntbs</a>. 201 </p></dd> 202<dt><span class="term">Effects</span></dt> 203<dd><p> 204 sets the attribute of target named by key to value. 205 </p></dd> 206<dt><span class="term">Throws</span></dt> 207<dd><p> 208 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 209 if a Python exception is raised. 210 </p></dd> 211</dl> 212</div> 213<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">del</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">target</span><span class="special">,</span> <span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">key</span><span class="special">);</span> 214</pre> 215<div class="variablelist"> 216<p class="title"><b></b></p> 217<dl class="variablelist"> 218<dt><span class="term">Requires</span></dt> 219<dd><p> 220 key is an <a class="link" href="../glossary.html#ntbs">ntbs</a>. 221 </p></dd> 222<dt><span class="term">Effects</span></dt> 223<dd><p> 224 deletes the attribute of target named by key. 225 </p></dd> 226<dt><span class="term">Throws</span></dt> 227<dd><p> 228 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 229 if a Python exception is raised. 230 </p></dd> 231</dl> 232</div> 233</div> 234<div class="section"> 235<div class="titlepage"><div><div><h3 class="title"> 236<a name="object_wrappers.boost_python_object_hpp.class_const_objattribute_policie"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_objattribute_policie" title="Class const_objattribute_policies">Class 237 <code class="computeroutput"><span class="identifier">const_objattribute_policies</span></code></a> 238</h3></div></div></div> 239<p> 240 The policies which are used for proxies representing an attribute access 241 to a const object when the attribute name is given as a const object. 242 </p> 243<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 244<span class="special">{</span> 245 <span class="keyword">struct</span> <span class="identifier">const_objattribute_policies</span> 246 <span class="special">{</span> 247 <span class="keyword">typedef</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key_type</span><span class="special">;</span> 248 <span class="keyword">static</span> <span class="identifier">object</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 249 <span class="special">};</span> 250<span class="special">}}}</span> 251</pre> 252</div> 253<div class="section"> 254<div class="titlepage"><div><div><h3 class="title"> 255<a name="object_wrappers.boost_python_object_hpp.class_const_objattribute_polici0"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_objattribute_polici0" title="Class const_objattribute_policies static functions">Class 256 <code class="computeroutput"><span class="identifier">const_objattribute_policies</span></code> 257 static functions</a> 258</h3></div></div></div> 259<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">object</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 260</pre> 261<div class="variablelist"> 262<p class="title"><b></b></p> 263<dl class="variablelist"> 264<dt><span class="term">Requires</span></dt> 265<dd><p> 266 key is an object holding a string. 267 </p></dd> 268<dt><span class="term">Effects</span></dt> 269<dd><p> 270 accesses the attribute of target named by key. 271 </p></dd> 272<dt><span class="term">Returns</span></dt> 273<dd><p> 274 An object managing the result of the attribute access. 275 </p></dd> 276<dt><span class="term">Throws</span></dt> 277<dd><p> 278 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 279 if a Python exception is raised. 280 </p></dd> 281</dl> 282</div> 283</div> 284<div class="section"> 285<div class="titlepage"><div><div><h3 class="title"> 286<a name="object_wrappers.boost_python_object_hpp.class_objattribute_policies"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_objattribute_policies" title="Class objattribute_policies">Class 287 <code class="computeroutput"><span class="identifier">objattribute_policies</span></code></a> 288</h3></div></div></div> 289<p> 290 The policies which are used for proxies representing an attribute access 291 to a mutable object when the attribute name is given as a const object. 292 </p> 293<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 294<span class="special">{</span> 295 <span class="keyword">struct</span> <span class="identifier">objattribute_policies</span> <span class="special">:</span> <span class="identifier">const_objattribute_policies</span> 296 <span class="special">{</span> 297 <span class="keyword">static</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span> 298 <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">del</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 299 <span class="special">};</span> 300<span class="special">}}}</span> 301</pre> 302</div> 303<div class="section"> 304<div class="titlepage"><div><div><h3 class="title"> 305<a name="object_wrappers.boost_python_object_hpp.class_objattribute_policies_stat"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_objattribute_policies_stat" title="Class objattribute_policies static functions">Class 306 <code class="computeroutput"><span class="identifier">objattribute_policies</span></code> static 307 functions</a> 308</h3></div></div></div> 309<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span> 310</pre> 311<div class="variablelist"> 312<p class="title"><b></b></p> 313<dl class="variablelist"> 314<dt><span class="term">Requires</span></dt> 315<dd><p> 316 key is an object holding a string. 317 </p></dd> 318<dt><span class="term">Effects</span></dt> 319<dd><p> 320 sets the attribute of target named by key to value. 321 </p></dd> 322<dt><span class="term">Throws</span></dt> 323<dd><p> 324 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 325 if a Python exception is raised. 326 </p></dd> 327</dl> 328</div> 329<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">del</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 330</pre> 331<div class="variablelist"> 332<p class="title"><b></b></p> 333<dl class="variablelist"> 334<dt><span class="term">Requires</span></dt> 335<dd><p> 336 key is an object holding a string. 337 </p></dd> 338<dt><span class="term">Effects</span></dt> 339<dd><p> 340 deletes the attribute of target named by key. 341 </p></dd> 342<dt><span class="term">Throws</span></dt> 343<dd><p> 344 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 345 if a Python exception is raised. 346 </p></dd> 347</dl> 348</div> 349</div> 350<div class="section"> 351<div class="titlepage"><div><div><h3 class="title"> 352<a name="object_wrappers.boost_python_object_hpp.class_const_item_policies"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_item_policies" title="Class const_item_policies">Class 353 <code class="computeroutput"><span class="identifier">const_item_policies</span></code></a> 354</h3></div></div></div> 355<p> 356 The policies which are used for proxies representing an item access (via 357 the Python bracket operators []) to a const object. 358 </p> 359<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 360<span class="special">{</span> 361 <span class="keyword">struct</span> <span class="identifier">const_item_policies</span> 362 <span class="special">{</span> 363 <span class="keyword">typedef</span> <span class="identifier">object</span> <span class="identifier">key_type</span><span class="special">;</span> 364 <span class="keyword">static</span> <span class="identifier">object</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 365 <span class="special">};</span> 366<span class="special">}}}</span> 367</pre> 368</div> 369<div class="section"> 370<div class="titlepage"><div><div><h3 class="title"> 371<a name="object_wrappers.boost_python_object_hpp.class_const_item_policies_static"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_item_policies_static" title="Class const_item_policies static functions">Class 372 <code class="computeroutput"><span class="identifier">const_item_policies</span></code> static 373 functions</a> 374</h3></div></div></div> 375<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">object</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 376</pre> 377<div class="variablelist"> 378<p class="title"><b></b></p> 379<dl class="variablelist"> 380<dt><span class="term">Effects</span></dt> 381<dd><p> 382 accesses the item of target specified by key. 383 </p></dd> 384<dt><span class="term">Returns</span></dt> 385<dd><p> 386 An object managing the result of the item access. 387 </p></dd> 388<dt><span class="term">Throws</span></dt> 389<dd><p> 390 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 391 if a Python exception is raised. 392 </p></dd> 393</dl> 394</div> 395</div> 396<div class="section"> 397<div class="titlepage"><div><div><h3 class="title"> 398<a name="object_wrappers.boost_python_object_hpp.class_item_policies"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_item_policies" title="Class item_policies">Class 399 <code class="computeroutput"><span class="identifier">item_policies</span></code></a> 400</h3></div></div></div> 401<p> 402 The policies which are used for proxies representing an item access (via 403 the Python bracket operators []) to a mutable object. 404 </p> 405<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 406<span class="special">{</span> 407 <span class="keyword">struct</span> <span class="identifier">item_policies</span> <span class="special">:</span> <span class="identifier">const_item_policies</span> 408 <span class="special">{</span> 409 <span class="keyword">static</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span> 410 <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">del</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 411 <span class="special">};</span> 412<span class="special">}}}</span> 413</pre> 414</div> 415<div class="section"> 416<div class="titlepage"><div><div><h3 class="title"> 417<a name="object_wrappers.boost_python_object_hpp.class_item_policies_static_funct"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_item_policies_static_funct" title="Class item_policies static functions">Class 418 <code class="computeroutput"><span class="identifier">item_policies</span></code> static functions</a> 419</h3></div></div></div> 420<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span> 421</pre> 422<div class="variablelist"> 423<p class="title"><b></b></p> 424<dl class="variablelist"> 425<dt><span class="term">Effects</span></dt> 426<dd><p> 427 sets the item of target specified by key to value. 428 </p></dd> 429<dt><span class="term">Throws</span></dt> 430<dd><p> 431 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 432 if a Python exception is raised. 433 </p></dd> 434</dl> 435</div> 436<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">del</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 437</pre> 438<div class="variablelist"> 439<p class="title"><b></b></p> 440<dl class="variablelist"> 441<dt><span class="term">Effects</span></dt> 442<dd><p> 443 deletes the item of target specified by key. 444 </p></dd> 445<dt><span class="term">Throws</span></dt> 446<dd><p> 447 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 448 if a Python exception is raised. 449 </p></dd> 450</dl> 451</div> 452</div> 453<div class="section"> 454<div class="titlepage"><div><div><h3 class="title"> 455<a name="object_wrappers.boost_python_object_hpp.class_const_slice_policies"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_slice_policies" title="Class const_slice_policies">Class 456 <code class="computeroutput"><span class="identifier">const_slice_policies</span></code></a> 457</h3></div></div></div> 458<p> 459 The policies which are used for proxies representing an slice access (via 460 the Python slice notation [x:y]) to a const object. 461 </p> 462<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 463<span class="special">{</span> 464 <span class="keyword">struct</span> <span class="identifier">const_slice_policies</span> 465 <span class="special">{</span> 466 <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">handle</span><span class="special"><>,</span> <span class="identifier">handle</span><span class="special"><></span> <span class="special">></span> <span class="identifier">key_type</span><span class="special">;</span> 467 <span class="keyword">static</span> <span class="identifier">object</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 468 <span class="special">};</span> 469<span class="special">}}}</span> 470</pre> 471</div> 472<div class="section"> 473<div class="titlepage"><div><div><h3 class="title"> 474<a name="object_wrappers.boost_python_object_hpp.class_const_slice_policies_stati"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_const_slice_policies_stati" title="Class const_slice_policies static functions">Class 475 <code class="computeroutput"><span class="identifier">const_slice_policies</span></code> static 476 functions</a> 477</h3></div></div></div> 478<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">object</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 479</pre> 480<div class="variablelist"> 481<p class="title"><b></b></p> 482<dl class="variablelist"> 483<dt><span class="term">Effects</span></dt> 484<dd><p> 485 accesses the slice of target specified by key. 486 </p></dd> 487<dt><span class="term">Returns</span></dt> 488<dd><p> 489 An object managing the result of the slice access. 490 </p></dd> 491<dt><span class="term">Throws</span></dt> 492<dd><p> 493 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 494 if a Python exception is raised. 495 </p></dd> 496</dl> 497</div> 498</div> 499<div class="section"> 500<div class="titlepage"><div><div><h3 class="title"> 501<a name="object_wrappers.boost_python_object_hpp.class_slice_policies"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_slice_policies" title="Class slice_policies">Class 502 <code class="computeroutput"><span class="identifier">slice_policies</span></code></a> 503</h3></div></div></div> 504<p> 505 The policies which are used for proxies representing an slice access to 506 a mutable object. 507 </p> 508<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 509<span class="special">{</span> 510 <span class="keyword">struct</span> <span class="identifier">slice_policies</span> <span class="special">:</span> <span class="identifier">const_slice_policies</span> 511 <span class="special">{</span> 512 <span class="keyword">static</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span> 513 <span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">del</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 514 <span class="special">};</span> 515<span class="special">}}}</span> 516</pre> 517</div> 518<div class="section"> 519<div class="titlepage"><div><div><h3 class="title"> 520<a name="object_wrappers.boost_python_object_hpp.class_slice_policies_static_func"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_slice_policies_static_func" title="Class slice_policies static functions">Class 521 <code class="computeroutput"><span class="identifier">slice_policies</span></code> static functions</a> 522</h3></div></div></div> 523<pre class="programlisting"><span class="keyword">static</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">set</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span> 524</pre> 525<div class="variablelist"> 526<p class="title"><b></b></p> 527<dl class="variablelist"> 528<dt><span class="term">Effects</span></dt> 529<dd><p> 530 sets the slice of target specified by key to value. 531 </p></dd> 532<dt><span class="term">Throws</span></dt> 533<dd><p> 534 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 535 if a Python exception is raised. 536 </p></dd> 537</dl> 538</div> 539<pre class="programlisting"><span class="keyword">static</span> <span class="keyword">void</span> <span class="identifier">del</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">target</span><span class="special">,</span> <span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 540</pre> 541<div class="variablelist"> 542<p class="title"><b></b></p> 543<dl class="variablelist"> 544<dt><span class="term">Effects</span></dt> 545<dd><p> 546 deletes the slice of target specified by key. 547 </p></dd> 548<dt><span class="term">Throws</span></dt> 549<dd><p> 550 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 551 if a Python exception is raised. 552 </p></dd> 553</dl> 554</div> 555</div> 556<div class="section"> 557<div class="titlepage"><div><div><h3 class="title"> 558<a name="object_wrappers.boost_python_object_hpp.class_template_object_operators"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_object_operators" title="Class template object_operators">Class 559 template <code class="computeroutput"><span class="identifier">object_operators</span></code></a> 560</h3></div></div></div> 561<p> 562 This is the base class of object and its proxy template used to supply 563 common interface: member functions, and operators which must be defined 564 within the class body. Its template parameter U is expected to be a class 565 derived from object_operators<U>. In practice users should never 566 use this class directly, but it is documented here because it supplies 567 important interface to object and its proxies. 568 </p> 569<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 570<span class="special">{</span> 571 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">U</span><span class="special">></span> 572 <span class="keyword">class</span> <span class="identifier">object_operators</span> 573 <span class="special">{</span> 574 <span class="keyword">public</span><span class="special">:</span> 575 <span class="comment">// function call</span> 576 <span class="comment">//</span> 577 <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()()</span> <span class="keyword">const</span><span class="special">;</span> 578 579 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A0</span><span class="special">></span> 580 <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">A0</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span> 581 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A1</span><span class="special">></span> 582 <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">A0</span> <span class="keyword">const</span><span class="special">&,</span> <span class="identifier">A1</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span> 583 <span class="special">...</span> 584 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A1</span><span class="special">,...</span><span class="keyword">class</span> <span class="identifier">An</span><span class="special">></span> 585 <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">A0</span> <span class="keyword">const</span><span class="special">&,</span> <span class="identifier">A1</span> <span class="keyword">const</span><span class="special">&,...</span><span class="identifier">An</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span> 586 587 <span class="identifier">detail</span><span class="special">::</span><span class="identifier">args_proxy</span> <span class="keyword">operator</span><span class="special">*</span> <span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 588 <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">args_proxy</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">args</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 589 <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">args_proxy</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">args</span><span class="special">,</span> 590 <span class="identifier">detail</span><span class="special">::</span><span class="identifier">kwds_proxy</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">kwds</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 591 592 <span class="comment">// truth value testing</span> 593 <span class="comment">//</span> 594 <span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">bool_type</span><span class="special">;</span> 595 <span class="keyword">operator</span> <span class="identifier">bool_type</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 596 597 <span class="comment">// Attribute access</span> 598 <span class="comment">//</span> 599 <span class="identifier">proxy</span><span class="special"><</span><span class="identifier">const_object_attribute</span><span class="special">></span> <span class="identifier">attr</span><span class="special">(</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*)</span> <span class="keyword">const</span><span class="special">;</span> 600 <span class="identifier">proxy</span><span class="special"><</span><span class="identifier">object_attribute</span><span class="special">></span> <span class="identifier">attr</span><span class="special">(</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*);</span> 601 <span class="identifier">proxy</span><span class="special"><</span><span class="identifier">const_object_objattribute</span><span class="special">></span> <span class="identifier">attr</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span> 602 <span class="identifier">proxy</span><span class="special"><</span><span class="identifier">object_objattribute</span><span class="special">></span> <span class="identifier">attr</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&);</span> 603 604 <span class="comment">// item access</span> 605 <span class="comment">//</span> 606 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 607 <span class="identifier">proxy</span><span class="special"><</span><span class="identifier">const_object_item</span><span class="special">></span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 608 609 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 610 <span class="identifier">proxy</span><span class="special"><</span><span class="identifier">object_item</span><span class="special">></span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 611 612 <span class="comment">// slicing</span> 613 <span class="comment">//</span> 614 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span> 615 <span class="identifier">proxy</span><span class="special"><</span><span class="identifier">const_object_slice</span><span class="special">></span> <span class="identifier">slice</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">start</span><span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">end</span><span class="special">)</span> <span class="keyword">const</span> 616 617 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span> 618 <span class="identifier">proxy</span><span class="special"><</span><span class="identifier">object_slice</span><span class="special">></span> <span class="identifier">slice</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">start</span><span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">end</span><span class="special">);</span> 619 <span class="special">};</span> 620<span class="special">}}}</span> 621</pre> 622</div> 623<div class="section"> 624<div class="titlepage"><div><div><h3 class="title"> 625<a name="object_wrappers.boost_python_object_hpp.class_template_object_operators_"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_object_operators_" title="Class template object_operators observer functions">Class 626 template <code class="computeroutput"><span class="identifier">object_operators</span></code> 627 observer functions</a> 628</h3></div></div></div> 629<pre class="programlisting"><span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()()</span> <span class="keyword">const</span><span class="special">;</span> 630<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A0</span><span class="special">></span> 631<span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">A0</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span> 632<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A1</span><span class="special">></span> 633<span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">A0</span> <span class="keyword">const</span><span class="special">&,</span> <span class="identifier">A1</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span> 634<span class="special">...</span> 635<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">A0</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">A1</span><span class="special">,...</span><span class="keyword">class</span> <span class="identifier">An</span><span class="special">></span> 636<span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">A0</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">a1</span><span class="special">,</span> <span class="identifier">A1</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">a2</span><span class="special">,...</span><span class="identifier">An</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">aN</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 637</pre> 638<div class="variablelist"> 639<p class="title"><b></b></p> 640<dl class="variablelist"> 641<dt><span class="term">Effects</span></dt> 642<dd><p> 643 <code class="computeroutput"><span class="identifier">call</span><span class="special"><</span><span class="identifier">object</span><span class="special">>(</span><span class="identifier">object</span><span class="special">(*</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">U</span><span class="special">*>(</span><span class="keyword">this</span><span class="special">)).</span><span class="identifier">ptr</span><span class="special">(),</span> 644 <span class="identifier">a1</span><span class="special">,</span> 645 <span class="identifier">a2</span><span class="special">,...</span><span class="identifier">aN</span><span class="special">)</span></code> 646 </p></dd> 647</dl> 648</div> 649<pre class="programlisting"><span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">args_proxy</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">args</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span></pre> 650<div class="variablelist"> 651<p class="title"><b></b></p> 652<dl class="variablelist"> 653<dt><span class="term">Effects</span></dt> 654<dd><p> 655 <code class="computeroutput"><span class="identifier">call</span> <span class="identifier">object</span> 656 <span class="identifier">with</span> <span class="identifier">arguments</span> 657 <span class="identifier">given</span> <span class="identifier">by</span> 658 <span class="identifier">the</span> <span class="identifier">tuple</span> 659 <span class="identifier">args</span></code> 660 </p></dd> 661</dl> 662</div> 663<pre class="programlisting"><span class="identifier">object</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">detail</span><span class="special">::</span><span class="identifier">args_proxy</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">args</span><span class="special">,</span> 664 <span class="identifier">detail</span><span class="special">::</span><span class="identifier">kwds_proxy</span> <span class="keyword">const</span> <span class="special">&</span><span class="identifier">kwds</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 665</pre> 666<div class="variablelist"> 667<p class="title"><b></b></p> 668<dl class="variablelist"> 669<dt><span class="term">Effects</span></dt> 670<dd><p> 671 <code class="computeroutput"><span class="identifier">call</span> <span class="identifier">object</span> 672 <span class="identifier">with</span> <span class="identifier">arguments</span> 673 <span class="identifier">given</span> <span class="identifier">by</span> 674 <span class="identifier">the</span> <span class="identifier">tuple</span> 675 <span class="identifier">args</span><span class="special">,</span> 676 <span class="keyword">and</span> <span class="identifier">named</span> 677 <span class="identifier">arguments</span> <span class="identifier">given</span> 678 <span class="identifier">by</span> <span class="identifier">the</span> 679 <span class="identifier">dictionary</span> <span class="identifier">kwds</span></code> 680 </p></dd> 681</dl> 682</div> 683<pre class="programlisting"><span class="keyword">operator</span> <span class="identifier">bool_type</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></pre> 684<div class="variablelist"> 685<p class="title"><b></b></p> 686<dl class="variablelist"> 687<dt><span class="term">Effects</span></dt> 688<dd><p> 689 Tests truth value of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 690 </p></dd> 691<dt><span class="term">Returns</span></dt> 692<dd><p> 693 <code class="computeroutput"><span class="identifier">call</span><span class="special"><</span><span class="identifier">object</span><span class="special">>(</span><span class="identifier">object</span><span class="special">(*</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">U</span><span class="special">*>(</span><span class="keyword">this</span><span class="special">)).</span><span class="identifier">ptr</span><span class="special">(),</span> 694 <span class="identifier">a1</span><span class="special">,</span> 695 <span class="identifier">a2</span><span class="special">,...</span><span class="identifier">aN</span><span class="special">)</span></code> 696 </p></dd> 697</dl> 698</div> 699<pre class="programlisting"><span class="identifier">proxy</span><span class="special"><</span><span class="identifier">const_object_attribute</span><span class="special">></span> <span class="identifier">attr</span><span class="special">(</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">name</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 700<span class="identifier">proxy</span><span class="special"><</span><span class="identifier">object_attribute</span><span class="special">></span> <span class="identifier">attr</span><span class="special">(</span><span class="keyword">char</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">name</span><span class="special">);</span> 701</pre> 702<div class="variablelist"> 703<p class="title"><b></b></p> 704<dl class="variablelist"> 705<dt><span class="term">Requires</span></dt> 706<dd><p> 707 name is an <a class="link" href="../glossary.html#ntbs">ntbs</a>. 708 </p></dd> 709<dt><span class="term">Effects</span></dt> 710<dd><p> 711 accesses the named attribute of *this. 712 </p></dd> 713<dt><span class="term">Returns</span></dt> 714<dd><p> 715 a proxy object which binds <code class="computeroutput"><span class="identifier">object</span><span class="special">(*</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">U</span><span class="special">*>(</span><span class="keyword">this</span><span class="special">))</span></code> as its target, and name as its 716 key. 717 </p></dd> 718</dl> 719</div> 720<pre class="programlisting"><span class="identifier">proxy</span><span class="special"><</span><span class="identifier">const_object_objattribute</span><span class="special">></span> <span class="identifier">attr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">object</span><span class="special">&</span> <span class="identifier">name</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 721<span class="identifier">proxy</span><span class="special"><</span><span class="identifier">object_objattribute</span><span class="special">></span> <span class="identifier">attr</span><span class="special">(</span><span class="keyword">const</span> <span class="identifier">object</span><span class="special">&</span> <span class="identifier">name</span><span class="special">);</span> 722</pre> 723<div class="variablelist"> 724<p class="title"><b></b></p> 725<dl class="variablelist"> 726<dt><span class="term">Requires</span></dt> 727<dd><p> 728 name is a object holding a string. 729 </p></dd> 730<dt><span class="term">Effects</span></dt> 731<dd><p> 732 accesses the named attribute of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code>. 733 </p></dd> 734<dt><span class="term">Returns</span></dt> 735<dd><p> 736 a proxy object which binds <code class="computeroutput"><span class="identifier">object</span><span class="special">(*</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">U</span><span class="special">*>(</span><span class="keyword">this</span><span class="special">))</span></code> as its target, and name as its 737 key. 738 </p></dd> 739</dl> 740</div> 741<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 742<span class="identifier">proxy</span><span class="special"><</span><span class="identifier">const_object_item</span><span class="special">></span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 743<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 744<span class="identifier">proxy</span><span class="special"><</span><span class="identifier">object_item</span><span class="special">></span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span> 745</pre> 746<div class="variablelist"> 747<p class="title"><b></b></p> 748<dl class="variablelist"> 749<dt><span class="term">Effects</span></dt> 750<dd><p> 751 accesses the item of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> indicated by key. 752 </p></dd> 753<dt><span class="term">Returns</span></dt> 754<dd><p> 755 a proxy object which binds <code class="computeroutput"><span class="identifier">object</span><span class="special">(*</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">U</span><span class="special">*>(</span><span class="keyword">this</span><span class="special">))</span></code> as its target, and object(key) 756 as its key. 757 </p></dd> 758</dl> 759</div> 760<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span> 761<span class="identifier">proxy</span><span class="special"><</span><span class="identifier">const_object_slice</span><span class="special">></span> <span class="identifier">slice</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">start</span><span class="special">;</span> <span class="identifier">start</span><span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">finish</span><span class="special">)</span> <span class="keyword">const</span> 762<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">class</span> <span class="identifier">V</span><span class="special">></span> 763<span class="identifier">proxy</span><span class="special"><</span><span class="identifier">object_slice</span><span class="special">></span> <span class="identifier">slice</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">start</span><span class="special">;</span> <span class="identifier">start</span><span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">finish</span><span class="special">);</span> 764</pre> 765<div class="variablelist"> 766<p class="title"><b></b></p> 767<dl class="variablelist"> 768<dt><span class="term">Effects</span></dt> 769<dd><p> 770 accesses the slice of <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> indicated by <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span><span class="identifier">object</span><span class="special">(</span><span class="identifier">start</span><span class="special">),</span> <span class="identifier">object</span><span class="special">(</span><span class="identifier">finish</span><span class="special">))</span></code>. 771 </p></dd> 772<dt><span class="term">Returns</span></dt> 773<dd><p> 774 a proxy object which binds <code class="computeroutput"><span class="identifier">object</span><span class="special">(*</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">U</span><span class="special">*>(</span><span class="keyword">this</span><span class="special">))</span></code> as its target, and <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special">(</span><span class="identifier">object</span><span class="special">(</span><span class="identifier">start</span><span class="special">),</span> 775 <span class="identifier">object</span><span class="special">(</span><span class="identifier">finish</span><span class="special">))</span></code> 776 as its key. 777 </p></dd> 778</dl> 779</div> 780</div> 781<div class="section"> 782<div class="titlepage"><div><div><h3 class="title"> 783<a name="object_wrappers.boost_python_object_hpp.class_object"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_object" title="Class object">Class 784 <code class="computeroutput"><span class="identifier">object</span></code></a> 785</h3></div></div></div> 786<p> 787 The intention is that object acts as much like a Python variable as possible. 788 Thus expressions you'd expect to work in Python should generally work in 789 the same way from C++. Most of object's interface is provided by its base 790 class <code class="computeroutput"><span class="identifier">object_operators</span><span class="special"><</span><span class="identifier">object</span><span class="special">></span></code>, and the free functions defined in 791 this header. 792 </p> 793<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 794<span class="special">{</span> 795 <span class="keyword">class</span> <span class="identifier">object</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">object_operators</span><span class="special"><</span><span class="identifier">object</span><span class="special">></span> 796 <span class="special">{</span> 797 <span class="keyword">public</span><span class="special">:</span> 798 <span class="identifier">object</span><span class="special">();</span> 799 <span class="identifier">object</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&);</span> 800 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 801 <span class="keyword">explicit</span> <span class="identifier">object</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span> 802 803 <span class="special">~</span><span class="identifier">object</span><span class="special">();</span> 804 805 <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&);</span> 806 <span class="identifier">PyObject</span><span class="special">*</span> <span class="identifier">ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 807 <span class="keyword">bool</span> <span class="identifier">is_none</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 808 <span class="special">};</span> 809<span class="special">}}}</span> 810</pre> 811</div> 812<div class="section"> 813<div class="titlepage"><div><div><h3 class="title"> 814<a name="object_wrappers.boost_python_object_hpp.class_object_constructors_and_de"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_object_constructors_and_de" title="Class object constructors and destructor">Class 815 <code class="computeroutput"><span class="identifier">object</span></code> constructors and destructor</a> 816</h3></div></div></div> 817<pre class="programlisting"><span class="identifier">object</span><span class="special">();</span></pre> 818<div class="variablelist"> 819<p class="title"><b></b></p> 820<dl class="variablelist"> 821<dt><span class="term">Effects</span></dt> 822<dd><p> 823 Constructs an object managing a reference to the Python None object. 824 </p></dd> 825<dt><span class="term">Throws</span></dt> 826<dd><p> 827 nothing. 828 </p></dd> 829</dl> 830</div> 831<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 832<span class="keyword">explicit</span> <span class="identifier">object</span><span class="special">(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span> 833</pre> 834<div class="variablelist"> 835<p class="title"><b></b></p> 836<dl class="variablelist"> 837<dt><span class="term">Effects</span></dt> 838<dd><p> 839 converts x to python and manages a reference to it. 840 </p></dd> 841<dt><span class="term">Throws</span></dt> 842<dd><p> 843 <a class="link" href="../high_level_components/boost_python_errors_hpp.html#high_level_components.boost_python_errors_hpp.class_error_already_set" title="Class error_already_set">error_already_set</a> 844 and sets a Python TypeError exception if no such conversion is possible. 845 </p></dd> 846</dl> 847</div> 848<pre class="programlisting"><span class="special">~</span><span class="identifier">object</span><span class="special">();</span> 849</pre> 850<div class="variablelist"> 851<p class="title"><b></b></p> 852<dl class="variablelist"> 853<dt><span class="term">Effects</span></dt> 854<dd><p> 855 decrements the reference count of the internally-held object. 856 </p></dd> 857</dl> 858</div> 859</div> 860<div class="section"> 861<div class="titlepage"><div><div><h3 class="title"> 862<a name="object_wrappers.boost_python_object_hpp.class_object_modifiers"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_object_modifiers" title="Class object modifiers">Class 863 <code class="computeroutput"><span class="identifier">object</span></code> modifiers</a> 864</h3></div></div></div> 865<pre class="programlisting"><span class="identifier">PyObject</span><span class="special">*</span> <span class="identifier">ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></pre> 866<div class="variablelist"> 867<p class="title"><b></b></p> 868<dl class="variablelist"> 869<dt><span class="term">Returns</span></dt> 870<dd><p> 871 a pointer to the internally-held Python object. 872 </p></dd> 873</dl> 874</div> 875<pre class="programlisting"><span class="keyword">bool</span> <span class="identifier">is_none</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></pre> 876<div class="variablelist"> 877<p class="title"><b></b></p> 878<dl class="variablelist"> 879<dt><span class="term">Returns</span></dt> 880<dd><p> 881 result of <code class="computeroutput"><span class="special">(</span><span class="identifier">ptr</span><span class="special">()</span> <span class="special">==</span> <span class="identifier">Py_None</span><span class="special">)</span></code> 882 </p></dd> 883</dl> 884</div> 885</div> 886<div class="section"> 887<div class="titlepage"><div><div><h3 class="title"> 888<a name="object_wrappers.boost_python_object_hpp.class_template_proxy"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_proxy" title="Class template proxy">Class 889 template <code class="computeroutput"><span class="identifier">proxy</span></code></a> 890</h3></div></div></div> 891<p> 892 This template is instantiated with various Policies described in this document 893 in order to implement attribute, item, and slice access for object. It 894 stores an object of type Policies::key_type. 895 </p> 896<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">python</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">api</span> 897<span class="special">{</span> 898 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Policies</span><span class="special">></span> 899 <span class="keyword">class</span> <span class="identifier">proxy</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">object_operators</span><span class="special"><</span><span class="identifier">proxy</span><span class="special"><</span><span class="identifier">Policies</span><span class="special">></span> <span class="special">></span> 900 <span class="special">{</span> 901 <span class="keyword">public</span><span class="special">:</span> 902 <span class="keyword">operator</span> <span class="identifier">object</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 903 904 <span class="identifier">proxy</span> <span class="keyword">const</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">proxy</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span> 905 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 906 <span class="keyword">inline</span> <span class="identifier">proxy</span> <span class="keyword">const</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 907 908 <span class="keyword">void</span> <span class="identifier">del</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span> 909 910 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 911 <span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 912 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 913 <span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 914 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 915 <span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 916 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 917 <span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 918 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 919 <span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 920 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 921 <span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special"><<=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 922 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 923 <span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">>>=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 924 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 925 <span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">&=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 926 <span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 927 <span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">|=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 928 <span class="special">};</span> 929<span class="special">}}}</span> 930</pre> 931</div> 932<div class="section"> 933<div class="titlepage"><div><div><h3 class="title"> 934<a name="object_wrappers.boost_python_object_hpp.class_template_proxy_observer_fu"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_proxy_observer_fu" title="Class template proxy observer functions">Class 935 template <code class="computeroutput"><span class="identifier">proxy</span></code> observer functions</a> 936</h3></div></div></div> 937<pre class="programlisting"><span class="keyword">operator</span> <span class="identifier">object</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></pre> 938<div class="variablelist"> 939<p class="title"><b></b></p> 940<dl class="variablelist"> 941<dt><span class="term">Effects</span></dt> 942<dd><p> 943 applies <code class="computeroutput"><span class="identifier">Policies</span><span class="special">::</span><span class="identifier">get</span><span class="special">(</span><span class="identifier">target</span><span class="special">,</span> <span class="identifier">key</span><span class="special">)</span></code> with the proxy's target and key 944 objects. 945 </p></dd> 946</dl> 947</div> 948</div> 949<div class="section"> 950<div class="titlepage"><div><div><h3 class="title"> 951<a name="object_wrappers.boost_python_object_hpp.class_template_proxy_modifier_fu"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.class_template_proxy_modifier_fu" title="Class template proxy modifier functions">Class 952 template <code class="computeroutput"><span class="identifier">proxy</span></code> modifier functions</a> 953</h3></div></div></div> 954<pre class="programlisting"><span class="identifier">proxy</span> <span class="keyword">const</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">proxy</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 955<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 956<span class="keyword">inline</span> <span class="identifier">proxy</span> <span class="keyword">const</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span> 957</pre> 958<div class="variablelist"> 959<p class="title"><b></b></p> 960<dl class="variablelist"> 961<dt><span class="term">Effects</span></dt> 962<dd><p> 963 <code class="computeroutput"><span class="identifier">Policies</span><span class="special">::</span><span class="identifier">set</span><span class="special">(</span><span class="identifier">target</span><span class="special">,</span> 964 <span class="identifier">key</span> <span class="special">,</span> 965 <span class="identifier">object</span><span class="special">(</span><span class="identifier">rhs</span><span class="special">))</span></code> 966 with the proxy's target and key objects. 967 </p></dd> 968</dl> 969</div> 970<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 971<span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 972<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 973<span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 974<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 975<span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 976<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 977<span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 978<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 979<span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 980<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 981<span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special"><<=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 982<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 983<span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">>>=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 984<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 985<span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">&=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 986<span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> 987<span class="identifier">proxy</span> <span class="keyword">operator</span><span class="special">|=(</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span><span class="special">);</span> 988</pre> 989<div class="variablelist"> 990<p class="title"><b></b></p> 991<dl class="variablelist"> 992<dt><span class="term">Effects</span></dt> 993<dd><p> 994 for a given <code class="computeroutput"><span class="keyword">operator</span><span class="error">@</span><span class="special">=</span></code>, 995 <code class="computeroutput"><span class="identifier">object</span><span class="special">(*</span><span class="keyword">this</span><span class="special">)</span> <span class="error">@</span><span class="special">=</span> <span class="identifier">rhs</span><span class="special">;</span></code> 996 </p></dd> 997<dt><span class="term">Returns</span></dt> 998<dd><p> 999 <code class="computeroutput"><span class="special">*</span><span class="keyword">this</span></code> 1000 </p></dd> 1001</dl> 1002</div> 1003<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">del</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></pre> 1004<div class="variablelist"> 1005<p class="title"><b></b></p> 1006<dl class="variablelist"> 1007<dt><span class="term">Effects</span></dt> 1008<dd><p> 1009 Policies::del(target, key ) with the proxy's target and key objects. 1010 </p></dd> 1011</dl> 1012</div> 1013</div> 1014<div class="section"> 1015<div class="titlepage"><div><div><h3 class="title"> 1016<a name="object_wrappers.boost_python_object_hpp.functions"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.functions" title="Functions">Functions</a> 1017</h3></div></div></div> 1018<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">T</span><span class="special">></span> 1019<span class="keyword">void</span> <span class="identifier">del</span><span class="special">(</span><span class="identifier">proxy</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">x</span><span class="special">);</span> 1020</pre> 1021<div class="variablelist"> 1022<p class="title"><b></b></p> 1023<dl class="variablelist"> 1024<dt><span class="term">Effects</span></dt> 1025<dd><p> 1026 <code class="computeroutput"><span class="identifier">x</span><span class="special">.</span><span class="identifier">del</span><span class="special">()</span></code> 1027 </p></dd> 1028</dl> 1029</div> 1030<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">>(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1031<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">>=(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1032<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special"><(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1033<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special"><=(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1034<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">==(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1035<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">!=(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1036</pre> 1037<div class="variablelist"> 1038<p class="title"><b></b></p> 1039<dl class="variablelist"> 1040<dt><span class="term">Effects</span></dt> 1041<dd><p> 1042 returns the result of applying the operator to <code class="computeroutput"><span class="identifier">object</span><span class="special">(</span><span class="identifier">l</span><span class="special">)</span></code> and <code class="computeroutput"><span class="identifier">object</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>, respectively, in Python. 1043 </p></dd> 1044</dl> 1045</div> 1046<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">+(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1047<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">-(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1048<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">*(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1049<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">/(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1050<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">%(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1051<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special"><<(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1052<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">>>(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1053<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">&(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1054<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">^(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1055<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">L</span><span class="special">,</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span> <span class="keyword">operator</span><span class="special">|(</span><span class="identifier">L</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1056</pre> 1057<div class="variablelist"> 1058<p class="title"><b></b></p> 1059<dl class="variablelist"> 1060<dt><span class="term">Effects</span></dt> 1061<dd><p> 1062 returns the result of applying the operator to <code class="computeroutput"><span class="identifier">object</span><span class="special">(</span><span class="identifier">l</span><span class="special">)</span></code> and <code class="computeroutput"><span class="identifier">object</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>, respectively, in Python. 1063 </p></dd> 1064</dl> 1065</div> 1066<pre class="programlisting"><span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1067<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1068<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">*=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1069<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">/=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1070<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">%=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1071<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special"><<=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">)</span> 1072<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">>>=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1073<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">&=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1074<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">^=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1075<span class="keyword">template</span><span class="special"><</span><span class="keyword">class</span> <span class="identifier">R</span><span class="special">></span> <span class="identifier">object</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">|=(</span><span class="identifier">object</span><span class="special">&</span><span class="identifier">l</span><span class="special">,</span><span class="identifier">R</span> <span class="keyword">const</span><span class="special">&</span><span class="identifier">r</span><span class="special">);</span> 1076</pre> 1077<div class="variablelist"> 1078<p class="title"><b></b></p> 1079<dl class="variablelist"> 1080<dt><span class="term">Effects</span></dt> 1081<dd><p> 1082 assigns to <code class="computeroutput"><span class="identifier">l</span></code> the 1083 result of applying the corresponding Python inplace operator to 1084 <code class="computeroutput"><span class="identifier">l</span></code> and <code class="computeroutput"><span class="identifier">object</span><span class="special">(</span><span class="identifier">r</span><span class="special">)</span></code>, 1085 respectively. 1086 </p></dd> 1087<dt><span class="term">Returns</span></dt> 1088<dd><p> 1089 l 1090 </p></dd> 1091</dl> 1092</div> 1093<pre class="programlisting"><span class="keyword">long</span> <span class="identifier">len</span><span class="special">(</span><span class="identifier">object</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">obj</span><span class="special">);</span></pre> 1094<div class="variablelist"> 1095<p class="title"><b></b></p> 1096<dl class="variablelist"> 1097<dt><span class="term">Effects</span></dt> 1098<dd><p> 1099 <code class="computeroutput"><span class="identifier">PyObject_Length</span><span class="special">(</span><span class="identifier">obj</span><span class="special">.</span><span class="identifier">ptr</span><span class="special">())</span></code> 1100 </p></dd> 1101<dt><span class="term">Returns</span></dt> 1102<dd><p> 1103 <code class="computeroutput"><span class="identifier">len</span><span class="special">()</span></code> 1104 of object. 1105 </p></dd> 1106</dl> 1107</div> 1108</div> 1109<div class="section"> 1110<div class="titlepage"><div><div><h3 class="title"> 1111<a name="object_wrappers.boost_python_object_hpp.example"></a><a class="link" href="boost_python_object_hpp.html#object_wrappers.boost_python_object_hpp.example" title="Example">Example</a> 1112</h3></div></div></div> 1113<p> 1114 Python code: 1115 </p> 1116<pre class="programlisting"><span class="identifier">def</span> <span class="identifier">sum_items</span><span class="special">(</span><span class="identifier">seq</span><span class="special">):</span> 1117 <span class="identifier">result</span> <span class="special">=</span> <span class="number">0</span> 1118 <span class="keyword">for</span> <span class="identifier">x</span> <span class="identifier">in</span> <span class="identifier">seq</span><span class="special">:</span> 1119 <span class="identifier">result</span> <span class="special">+=</span> <span class="identifier">x</span> 1120 <span class="keyword">return</span> <span class="identifier">result</span> 1121</pre> 1122<p> 1123 C++ version 1124 </p> 1125<pre class="programlisting"><span class="identifier">object</span> <span class="identifier">sum_items</span><span class="special">(</span><span class="identifier">object</span> <span class="identifier">seq</span><span class="special">)</span> 1126<span class="special">{</span> 1127 <span class="identifier">object</span> <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">object</span><span class="special">(</span><span class="number">0</span><span class="special">);</span> 1128 <span class="keyword">for</span> <span class="special">(</span><span class="keyword">int</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="identifier">len</span><span class="special">(</span><span class="identifier">seq</span><span class="special">);</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span> 1129 <span class="identifier">result</span> <span class="special">+=</span> <span class="identifier">seq</span><span class="special">[</span><span class="identifier">i</span><span class="special">];</span> 1130 <span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span> 1131<span class="special">}</span> 1132</pre> 1133</div> 1134</div> 1135<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr> 1136<td align="left"></td> 1137<td align="right"><div class="copyright-footer">Copyright © 2002-2005, 2015 David Abrahams, Stefan Seefeld<p> 1138 Distributed under the Boost Software License, Version 1.0. (See accompanying 1139 file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a> 1140 </p> 1141</div></td> 1142</tr></table> 1143<hr> 1144<div class="spirit-nav"> 1145<a accesskey="p" href="boost_python_long_hpp.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../object_wrappers.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="boost_python_str_hpp.html"><img src="../../images/next.png" alt="Next"></a> 1146</div> 1147</body> 1148</html> 1149