Ограничить аргументы шаблона переменной

Можем ли мы ограничить аргументы шаблона переменной определенным типом? Т.е., добиться чего-то подобного (конечно, не реального C ++):

struct X {};

auto foo(X... args)

Здесь мое намерение состоит в том, чтобы иметь функцию, которая принимает переменное числоX параметры.

Самое близкое у нас это:

template <class... Args>
auto foo(Args... args)

но это принимает любой тип параметра.

Ответы на вопрос(1)

Ваш ответ на вопрос