2011-04-11 78 views
6

任何人都可以从ISO N3242§3.2,第二点说明这个说法任何人都可以解释当前C++ 0x标准草案的这一段吗?

非安置分配或 释放函数一类是 ODR使用的由 构造函数类的定义。对于A类 非配置释放函数 是ODR-usedby该 类的析构函数的 定义,或通过在一个definitionof虚拟 析构函数(12.4)0.26甲 点由 查找被选择如012.8所述, 类别的复制分配功能由另一个 类别的隐式定义的 复制分配功能使用。 A 类别 的移动分配功能由另一 类的隐式定义的 移动分配功能使用,如12.8所述。

ISO标准2003说:

一类 拷贝赋值函数用于由隐式定义 拷贝赋值函数另一个 类为12.8指定。

这些陈述的实际区别是什么?

任何一个在示例/程序方面解释上述添加点...?

我知道移动构造函数/移动分配函数 - >添加了新的功能。

任何人都可以在示例/程序的帮助下解释这一点吗?

请.............

请..........回答

回答

4

这个另外的基本原理,结合实例可以发现here 。简而言之,它明确了何时需要定义一个类的分配/释放函数。 (C++ 03)一个定义规则要求在程序中使用的每个变量或函数都使用作为“use”的一个非常具体的定义,它必须只有一个定义。因此,当(分配)分配函数被视为“使用”时的描述也要求何时需要定义。

为避免混淆单词“use”的一般含义和ODR中定义的“use”的含义,每当第二个含义有意时,“use”一词已被替换为“odr-use” 。

相关问题