Вот код, который у меня есть сейчас < /p>
Код: Выделить всё
template
struct Pattern { /* Some code */ };
template
struct Match {
Match(Ts ...) { };
template // Force the type of Ps to be Pattern, Pattern, ...
void my_func(Ps ... ps) { };
};
И я хотел бы заставить варидический тип my_func сгенерировать из параметра шаблона переменного быть сопоставленным с соответствующей шаблоном , в результате чего тип, состоящий из шаблона , шаблона , ... .
Вот есть Возможная специализация: < /p>
Код: Выделить всё
template Match::Match(int, int) { };
template void Match::my_func(Pattern, Pattern) { };
Я попытался разобраться в постоянных выражениях, чтобы вручную проверить, было ли это правильным или нет, но он выглядит слишком сложным и не предназначенным для этого, я совершенно новичок в концепциях и type_traits .
Подробнее здесь:
https://stackoverflow.com/questions/794 ... types-in-c