Информация об изменениях

Сообщение Re[13]: Volatile и предупреждение C5220 от 03.01.2022 14:05

Изменено 03.01.2022 14:11 Максим

Re[13]: Volatile и предупреждение C5220
ЕМ>Напомню, вопрос возник потому, что компилятор предупреждает не о недостаточности volatile для синхронизации, а о "нетривиальности" автоматически генерируемого конструктора класса, содержащего volatile-переменную.

Были какие-то разногласия между членами комитета на этот счет. Возможно найдете что-то полезное по ссылке ниже
Copying volatile subobjects is not trivial
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1153r0.html

М>>Можете показать примерный код?

ЕМ>
ЕМ>class C {

ЕМ>  int volatile i;

ЕМ>};
ЕМ>


Тут volatile можно убрать, ничего принципиально не изменится (надо просто проверить, что компилятор не выкинет i на данном уровне оптимизации).
Re[13]: Volatile и предупреждение C5220
ЕМ>Напомню, вопрос возник потому, что компилятор предупреждает не о недостаточности volatile для синхронизации, а о "нетривиальности" автоматически генерируемого конструктора класса, содержащего volatile-переменную.

Были какие-то разногласия между членами комитета на этот счет. Возможно найдете что-то полезное по ссылке ниже
Copying volatile subobjects is not trivial
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1153r0.html

М>>Можете показать примерный код?

ЕМ>
ЕМ>class C {

ЕМ>  int volatile i;

ЕМ>};
ЕМ>


Тут volatile можно убрать, ничего принципиально не изменится (надо просто проверить, что компилятор не выкинет i на данном уровне оптимизации).

В свете вышесказанного про майкрософтовский компилятор, этод код осуществляет синхронизацию, да.