Это было изменено в C ++ 17;до этого non_trivially_copyable
можно было бы просто скопировать.Ваш класс действительно нетривиально копируемый в C ++ 17, в той части стандарта, на которую вы ссылаетесь.
Однако кажется, что libstdc ++ и libc ++ не были обновлены, чтобы отразить это.Итак, чтобы ответить на ваш вопрос напрямую: эти две реализации действительно неверны.Обратите внимание, что ваша ссылка Godbolt показывает, что MSVC все делает правильно.
Поскольку это считалось дефектом (см. CWG 1734 ), это должно измениться для реализаций старых версий C ++,тоже.
Насколько я знаю, одним из основных мотивов изменений в стандарте было недопущение memcpy
-объединения вокруг атомных элементов и мьютексов.