Assignable.xml 1.9 KB

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