Вариад-значения-таблицы-тип с типами значения, приведенные в родительском шаблоне, принимается 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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