https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79094
Bug ID: 79094 Summary: Pack explansion in using-declaration rejects an attempt to inherit a pack of constructors Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ville.voutilainen at gmail dot com Target Milestone: --- template <class... Args> struct X : Args... { using Args::Args...; }; int main() { struct A {A() = default; A(int) {}}; struct B {B() = default; B(double) {}}; X<A, B> x1{42}; X<A, B> x2{666.0}; } Clang accepts the code. GCC rejects it: prog.cc:3:21: error: parameter packs not expanded with '...': using Args::Args...; ^~~ prog.cc:3:21: note: 'Args' prog.cc: In function 'int main()': prog.cc:10:18: warning: missing initializer for member 'X<main()::A, main()::B>::<anonymous>' [-Wmissing-field-initializers] X<A, B> x1{42}; ^ prog.cc:11:21: warning: missing initializer for member 'X<main()::A, main()::B>::<anonymous>' [-Wmissing-field-initializers] X<A, B> x2{666.0}; ^