https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104418
--- Comment #2 from Fedor Chelnokov <fchelnokov at gmail dot com> --- My personal feeling is that if a compiler accepts `B b(i);` then it must accept `C c(i);` as well because of [namespace.udecl] p13: > Constructors that are named by a using-declaration are treated as though they > were constructors of the derived class when looking up the constructors of > the derived class ([class.qual]) or forming a set of overload candidates > ([over.match.ctor], [over.match.copy], [over.match.list]). But probably I miss something.