https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106808
--- Comment #10 from andysem at mail dot ru --- (In reply to andysem from comment #8) > (In reply to Jonathan Wakely from comment #7) > > > > Do you want ODR violations? Because that's how you get ODR violations. > > I understand this, but my point is that this is a breaking change, > apparently even with the constructor being marked explicit... I take it back, with the constructor marked explicit it doesn't break. Before, I tested the preprocessed source from gcc 11.2, which didn't have explicit. Adding the explicit fixes compilation. Sorry for the confusion.