Являются ли изменчивые элементы данных тривиально копируемыми?

Пока пишу этот ответ Я понял, что я не настолько уверен в своих выводах, как обычно гарантирую, прежде чем ударить Разместить ответ.

Я могу найти несколько достаточно убедительных цитат для аргумента, что тривиальное копируемость volatile члены данных либо определены реализацией, либо категорически запрещены:

Но я не смог подтвердить это в стандарте1 сам. Особенно «беспокоит» то, что нет никаких признаков предлагаемого изменения формулировки из списка проблем n3159 в окончательной редакции фактического стандарта.

Итак, что дает? Являются volatile данные участников тривиально копируемые или нет?


1   C ++ 11

9

Решение

Я вижу следующее определение «тривиально копируемого» (C ++ 11 §3.9, параграф 9):

…Скалярные типы, тривиально копируемые типы классов, массивы таких типов, а также резюме квалифицированных версии этих типов все вместе называются тривиально копируемый виды ….

резюме квалифицированных по определению включает const и / или volatile (§3.9.3). Поэтому представляется, что volatile значения могут быть явно тривиально копируемыми, если неквалифицированный тип будет тривиально копируемым (скалярный или тривиально копируемый тип класса или его массив).

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]