Есть ли еще одна ошибка компилятора 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'
1 ответ
Решение
Расширения разрешены только в объявлениях использования начиная с C++17. ( ссылка)
Похоже, что ваша версия GCC просто не имеет этой новой функции, или имеет, но ошибочно (например, ошибка 79094).