8

在我们的代码库中,我们使用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>>
4

1 回答 1

15
template <typename... T>
using VarSP = std::variant<std::shared_ptr<T>...>;
于 2019-09-02T09:40:41.457 回答