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 ... . Но все они все еще параметр packs afaik.
Редактировать: в сторону: почему может быть полезно? Не очень хорошо). < /p>
Вы пишете процедуру тестирования для группы шаблонных графических операций. Некоторые из них из формы , некоторые из них и т. Д. Вы хотите написать общую процедуру тестирования для всех Forms , которые принимают параметр формы, набор соответствующих графических операций и набор значений тестирования ConstexPR для параметров. Затем вы можете сделать что -то вроде: < /p>
Код: Выделить всё
generic_graphics_test::test()to каким-то образом проверить 2D и 3D-Undoable сорта GFX_TRANSLATE и GFX_SCALE . (где test () принимает экземпляры Build (выше) в качестве параметров шаблона, которые здесь представляют (необработанные, неразрешенные)
, к сожалению, нет общего «ключевого слова шаблона-параметра-em> (но, вероятно, действительно сложно написать код компилятора), который можно было бы сделать для всех возможных Шаблон.
Подробнее здесь: https://stackoverflow.com/questions/795 ... late-is-ac
Мобильная версия