SGI

可赋值

类别: 公用程序 组件类型: 概念

描述

如果可以复制该类型的对象并将值赋给变量,则该类型是可赋值的。

细化

相关类型

符号

X 一个可赋值模型的类型
x, y 类型为X

定义

有效表达式

名称 表达式 类型要求 返回类型
复制构造函数 X(x)   X
复制构造函数
X x(y);
X x = y;
   
赋值 x = y [1]   X&
交换 swap(x,y)   void

表达式语义

名称 表达式 前提条件 语义 后置条件
复制构造函数 X(x)     X(x)是…的副本x [2]
复制构造函数 X(x)     X(x)是…的副本x [2]
复制构造函数
X x(y);
X x = y;
    x是…的副本y [2]
赋值 x = y [1]     x是…的副本y [2]
交换 swap(x,y)   等同于
{
  X tmp = x; 
  x = y; 
  y = tmp; 
}
 

复杂度保证

不变式

模型

备注

[1] 此要求的一个含义是,const类型不可赋值。例如,const int不可赋值:如果x声明为类型const int,则x = 7是非法的。类似地,类型pair<const int, int>不可赋值。

[2] 这里之所以说“x是…的副本y”,而不是“x == y”,是因为operator==不一定定义:相等不是可赋值的要求。如果类型XEqualityComparable 以及可赋值的,则x的副本应该与x.

进行比较。

另请参见
[Silicon Surf] [STL Home]
DefaultConstructible 版权所有 © 1999 Silicon Graphics, Inc. 保留所有权利。