Как создать шаблон с переменным количеством параметров типа?

В нашей кодовой базе мы используем std::variant<std::shared_ptr<SomeClass>, ...> много.

Это, очевидно, требует много написания. Как сделать шаблон?

template <class... T>
using VarSP = std::variant<std::shared_ptr<???>>;

Где следует Tперейти в приведенный выше фрагмент? Желаемое поведение должно быть:

VarSP<Foo, Bar, Baz> // std::variant<std::shared_ptr<Foo>, std::shared_ptr<Bar>, std::shared_ptr<Baz>>

1 ответ

Решение
template <typename... T>
using VarSP = std::variant<std::shared_ptr<T>...>;
Другие вопросы по тегам