I know msvc does not support [[no_unique_address]], but it supports [[msvc::no_unique_address]]. There is no attribute that matches this behavior for msvc, which leads to silent abi break.
clang 14 is probably going to release when the MSVC breaks abi. Yes we can support msvc::no_unique_address too, but it adds headache for future maintanence.
Also, x86_64-windows-gnu target and GCC targeting windows does support [[no_unique_address]] too, the abi is already "broken" in some form.
I propose to just support [[no_unique_address]] for all targets to prevent future problems.
clang-format: please reformat the code