Вариад-значения-таблицы-тип с типами значения, приведенные в родительском шаблоне, принимается Clang, но отвергается GCCC++

Программы на C++. Форум разработчиков
Anonymous
Вариад-значения-таблицы-тип с типами значения, приведенные в родительском шаблоне, принимается Clang, но отвергается GCC

Сообщение Anonymous »

Я строю типы признаков (аналогично std :: type_identity), чтобы представляют шаблонные образы различных ароматов. Шаблоны варидового значения смешанного типа являются особым случаем, и я могу думать только о том, чтобы делать их только через вложенные структуры, как показано ниже. < /P>

clang принимает это, GCC не делает. < /P>

Код: Выделить всё

template 
struct variadic_value_metatemplate_builder
{
template 
struct build
{
template 
using type = TT;
};
};
< /code>
(ссылка компилятора-Explorer) < /p>

Ошибка GCC: < /p>
:8:39: error: expansion pattern 'tt_Vs' contains no parameter packs [-Wtemplate-body]
8 |                 using type = TT;
Кто прав?
Формулировка ошибки GCC кажется неверным, но я думаю, что это связано с требованием для vs ... и ts ... иметь один и тот же размер, создавая vs (/code> не и ts ... . Но все они все еще параметры пакеты afaik.

Подробнее здесь: https://stackoverflow.com/questions/795 ... late-is-ac

Вернуться в «C++»