• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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