1<?xml version="1.0"?> 2<concept name="Assignable" category="Utility"><!-- 3Based on concepts from the SGI Standard Template Library documentation: 4Copyright (c) 1996-1999 5Silicon Graphics Computer Systems, Inc. 6 7Copyright (c) 1994 8Hewlett-Packard Company 9--><!-- 10Copyright 2000-2001 University of Notre Dame du Lac. 11Copyright 2001-2002 Indiana University. 12Some concepts based on versions from the MTL draft manual and Boost Graph 13and Property Map documentation: 14Copyright (c) Jeremy Siek, Lie-Quan Lee, and Andrew Lumsdaine 2000 15--> 16 <param name="X" role="assignable-type"/> 17 18 <models-sentence>The type <arg num="1"/> must be a model of <self/>.</models-sentence> 19 20 <description> 21 <para>Assignable types must have copy constructors, 22 <code>operator=</code> for assignment, and the <code>swap()</code> 23 function defined.</para> 24 </description> 25 26 <notation variables="x y"> 27 <sample-value> 28 <type name="X"/> 29 </sample-value> 30 </notation> 31 32 <refines const="no" concept="CopyConstructible"/> 33 34 <valid-expression name="Assignment"> 35 <assign> 36 <sample-value><reference-to><type name="X"/></reference-to></sample-value> 37 <sample-value><const><reference-to><type name="X"/></reference-to></const></sample-value> 38 </assign> 39 <return-type> 40 <require-same-type testable="yes"> 41 <reference-to><type name="X"/></reference-to> 42 </require-same-type> 43 </return-type> 44 <semantics>Require <code>operator=</code></semantics> 45 </valid-expression> 46 47 <valid-expression name="Swap"> 48 <apply-function name="swap"> 49 <sample-value><reference-to><type name="X"/></reference-to></sample-value> 50 <sample-value><reference-to><type name="X"/></reference-to></sample-value> 51 </apply-function> 52 <return-type><require-same-type><type name="void"/></require-same-type></return-type> 53 <semantics>Require <code>swap()</code> function</semantics> 54 </valid-expression> 55 56 <example-model> 57 <type name="int"/> 58 </example-model> 59</concept> 60