易变数据成员是否可以轻易复制?

时间:2012-11-15 22:57:42

标签: c++ c++11 volatile language-lawyer

在写this answer的同时,我意识到我对我的结论并不像我通常在确定发布你的答案之前所确定的那样自信。

我可以找到一些相当令人信服的引用,因为volatile数据成员的琐事可复制性要么是实现定义的,要么是不允许的:

但我无法在标准 1 本身支持这一点。特别令人担忧的是,在实际标准的最终措辞中,没有任何迹象表明该n3159问题清单的拟议措辞有所改变。

那么,是什么给出的? volatile数据成员是否可以轻易复制?


1 C ++ 11

1 个答案:

答案 0 :(得分:1)

我看到了“平凡可复制”的以下定义(C ++11§3.9,第9段):

  

...标量类型,简单的可复制类类型,此类类型的数组, cv-qualified 这些类型的版本统称为可复制的< / em> types ....

根据定义,

cv-qualified 包括const 和/或 volatile(§3.9.3)。因此,如果非限定类型可以轻易地复制(标量或平凡的可复制类类型或其数组),那么volatile值似乎是明显可复制的。