ЕМ>Напомню, вопрос возник потому, что компилятор предупреждает не о недостаточности 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 на данном уровне оптимизации).
В свете вышесказанного про майкрософтовский компилятор, этод код осуществляет синхронизацию, да.