https://gcc.gnu.org/bugzilla/show_bug.cgi?id=119075
--- Comment #5 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #3) > You can construct a contrived testcase that fails the same way due to the > _Bit_reference(_Bit_type*, _Bit_type) constructor: > > #include <vector> > #include <type_traits> > > struct X { X(int, int) { } }; > > int test2(std::vector<bool>::reference); > void test2(X); > > static_assert(std::is_same<decltype(test2({0,0})), void>::value, ""); > > > This is ambiguous for the same reason. Actually it seems only GCC thinks this one is ambiguous.