Сообщение 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
М>>Можете показать примерный код?
ЕМ>
Тут volatile можно убрать, ничего принципиально не изменится (надо просто проверить, что компилятор не выкинет i на данном уровне оптимизации).
Были какие-то разногласия между членами комитета на этот счет. Возможно найдете что-то полезное по ссылке ниже
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
М>>Можете показать примерный код?
ЕМ>
Тут volatile можно убрать, ничего принципиально не изменится (надо просто проверить, что компилятор не выкинет i на данном уровне оптимизации).
В свете вышесказанного про майкрософтовский компилятор, этод код осуществляет синхронизацию, да.
Были какие-то разногласия между членами комитета на этот счет. Возможно найдете что-то полезное по ссылке ниже
Copying volatile subobjects is not trivial
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2018/p1153r0.html
М>>Можете показать примерный код?
ЕМ>
ЕМ>class C {
ЕМ> int volatile i;
ЕМ>};
ЕМ>
В свете вышесказанного про майкрософтовский компилятор, этод код осуществляет синхронизацию, да.