相对于继承的构造函数,gcc 编译器是否还有一个错误?



此代码不使用 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(。

最新更新