Как создать шаблон с переменным количеством параметров типа?
В нашей кодовой базе мы используем 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>...>;