template<typename... Ts> using Type = std::variant<std::shared_ptr<T1>, std::shared_ptr<T2>, std::shared_ptr<Tn>>;
如何使用可变参数模板和折叠表达式来做到这一点?
我尝试这样的事情:
template<typename... Ts> using Type = std::variant<((std::shared_ptr<Ts>), ...)>;`
但它无法编译。
以下为我编译
template<typename... Ts> using Type = std::variant<std::shared_ptr<Ts>...>;
如这里所述
后跟省略号的模式,其中至少一个参数包的名称至少出现一次,被扩展为零个或多个以逗号分隔的模式实例,其中参数包的名称被每个包中的元素,按顺序
这里我们的模式是
std::shared_ptr<Ts>
std::shared_ptr<T1>, std::shared_ptr<T2>, std::shared_ptr<Tn>