📄 assignable.html
字号:
<HTML><!-- -- Copyright (c) 1996-1999 -- Silicon Graphics Computer Systems, Inc. -- -- Permission to use, copy, modify, distribute and sell this software -- and its documentation for any purpose is hereby granted without fee, -- provided that the above copyright notice appears in all copies and -- that both that copyright notice and this permission notice appear -- in supporting documentation. Silicon Graphics makes no -- representations about the suitability of this software for any -- purpose. It is provided "as is" without express or implied warranty. -- -- Copyright (c) 1994 -- Hewlett-Packard Company -- -- Permission to use, copy, modify, distribute and sell this software -- and its documentation for any purpose is hereby granted without fee, -- provided that the above copyright notice appears in all copies and -- that both that copyright notice and this permission notice appear -- in supporting documentation. Hewlett-Packard Company makes no -- representations about the suitability of this software for any -- purpose. It is provided "as is" without express or implied warranty. -- --><Head><Title>Assignable</Title><!-- Generated by htmldoc --></HEAD><BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b" ALINK="#ff0000"> <IMG SRC="CorpID.gif" ALT="SGI" HEIGHT="43" WIDTH="151"> <!--end header--><BR Clear><H1>Assignable</H1><Table CellPadding=0 CellSpacing=0 width=100%><TR><TD Align=left><Img src = "utilities.gif" Alt="" WIDTH = "194" HEIGHT = "38" ></TD><TD Align=right><Img src = "concept.gif" Alt="" WIDTH = "194" HEIGHT = "38" ></TD></TR><TR><TD Align=left VAlign=top><b>Category</b>: utilities</TD><TD Align=right VAlign=top><b>Component type</b>: concept</TD></TR></Table><h3>Description</h3>A type is Assignable if it is possible to copy objects of that type andto assign values to variables.<h3>Refinement of</h3><h3>Associated types</h3><h3>Notation</h3><Table><TR><TD VAlign=top><tt>X</tt></TD><TD VAlign=top>A type that is a model of Assignable</TD></TR><TR><TD VAlign=top><tt>x</tt>, <tt>y</tt></TD><TD VAlign=top>Object of type <tt>X</tt></TD></tr></table><h3>Definitions</h3><h3>Valid expressions</h3><Table border><TR><TH>Name</TH><TH>Expression</TH><TH>Type requirements</TH><TH>Return type</TH></TR><TR><TD VAlign=top>Copy constructor</TD><TD VAlign=top><tt>X(x)</tt></TD><TD VAlign=top> </TD><TD VAlign=top><tt>X</tt></TD></TR><TR><TD VAlign=top>Copy constructor</TD><TD VAlign=top><pre>X x(y);X x = y;</pre></TD><TD VAlign=top> </TD><TD VAlign=top> </TD></TR><TR><TD VAlign=top>Assignment</TD><TD VAlign=top><tt>x = y</tt> <A href="#1">[1]</A></TD><TD VAlign=top> </TD><TD VAlign=top><tt>X&</tt></TD></TR><TR><TD VAlign=top>Swap</TD><TD VAlign=top><tt>swap(x,y)</tt></TD><TD VAlign=top> </TD><TD VAlign=top><tt>void</tt></TD></tr></table><h3>Expression semantics</h3><Table border><TR><TH>Name</TH><TH>Expression</TH><TH>Precondition</TH><TH>Semantics</TH><TH>Postcondition</TH></TR><TR><TD VAlign=top>Copy constructor</TD><TD VAlign=top><tt>X(x)</tt></TD><TD VAlign=top> </TD><TD VAlign=top> </TD><TD VAlign=top><tt>X(x)</tt> is a copy of <tt>x</tt> <A href="#2">[2]</A></TD></TR><TR><TD VAlign=top>Copy constructor</TD><TD VAlign=top><tt>X(x)</tt></TD><TD VAlign=top> </TD><TD VAlign=top> </TD><TD VAlign=top><tt>X(x)</tt> is a copy of <tt>x</tt> <A href="#2">[2]</A></TD></TR><TR><TD VAlign=top>Copy constructor</TD><TD VAlign=top><pre>X x(y);X x = y;</pre></TD><TD VAlign=top> </TD><TD VAlign=top> </TD><TD VAlign=top><tt>x</tt> is a copy of <tt>y</tt> <A href="#2">[2]</A></TD></TR><TR><TD VAlign=top>Assignment</TD><TD VAlign=top><tt>x</tt> = <tt>y</tt> <A href="#1">[1]</A></TD><TD VAlign=top> </TD><TD VAlign=top> </TD><TD VAlign=top><tt>x</tt> is a copy of <tt>y</tt> <A href="#2">[2]</A></TD></TR><TR><TD VAlign=top>Swap</TD><TD VAlign=top><tt><A href="swap.html">swap</A>(x,y)</tt></TD><TD VAlign=top> </TD><TD VAlign=top>Equivalent to<pre>{ X tmp = x; x = y; y = tmp; }</pre></TD><TD VAlign=top> </TD></tr></table><h3>Complexity guarantees</h3><h3>Invariants</h3><h3>Models</h3><UL><LI>int</UL><h3>Notes</h3><P><A name="1">[1]</A>One implication of this requirement is that a <tt>const</tt> type is not Assignable.For example, <tt>const int</tt> is not Assignable: if <tt>x</tt> is declared to beof type <tt>const int</tt>, then <tt>x = 7</tt> is illegal. Similarly, the type<tt><A href="pair.html">pair</A><const int, int></tt> is not Assignable.<P><A name="2">[2]</A>The reason this says "<tt>x</tt> is a copy of <tt>y</tt>", rather than"<tt>x == y</tt>", is that <tt>operator==</tt> is not necessarily defined: equalityis not a requirement of Assignable. If the type <tt>X</tt> is<A href="EqualityComparable.html">EqualityComparable</A> as well as Assignable, then a copy of <tt>x</tt> should compare equal to <tt>x</tt>.<h3>See also</h3><A href="DefaultConstructible.html">DefaultConstructible</A><!--start footer--> <HR SIZE="6"><A href="http://www.sgi.com/"><IMG SRC="surf.gif" HEIGHT="54" WIDTH="54" ALT="[Silicon Surf]"></A><A HREF="index.html"><IMG SRC="stl_home.gif" HEIGHT="54" WIDTH="54" ALT="[STL Home]"></A><BR><FONT SIZE="-2"><A href="http://www.sgi.com/Misc/sgi_info.html" TARGET="_top">Copyright © 1999 Silicon Graphics, Inc.</A> All Rights Reserved.</FONT><FONT SIZE="-3"><a href="http://www.sgi.com/Misc/external.list.html" TARGET="_top">TrademarkInformation</A></FONT><P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -