此代码不使用 gcc HEAD 10.0.0 20190 进行编译,而是使用 clang HEAD 9.0.0 进行编译
#include <iostream>
struct A
{
A() = default;
A( int ) {}
};
struct B
{
B() = default;
B( const char * ) {}
};
template <typename...Bases>
struct C : Bases...
{
using Bases::Bases...;
};
int main()
{
}
错误是
rog.cc:18:23: error: parameter packs not expanded with '...':
18 | using Bases::Bases...;
| ^~~
prog.cc:18:23: note: 'Bases'
自 C++17 日起,仅在using-声明中允许扩展。(参考资料(
看起来您的 GCC 版本还没有该新功能,或者有,但以错误的方式(例如错误 79094(。