Somewhere inside the constructor there appears to be missing handling of a type declared as volatile
https://godbolt.org/z/d399qnY64
std::expected from GCC use for comparison
This is a very odd use of volatile (it came up when a colleague used it to defeat the optimiser while debugging) so I really can't be surprised it's a bit iffy