【发布时间】:2017-10-04 08:04:47
【问题描述】:
为了更加熟悉 C++17,我刚刚注意到std::visit:
template <class Visitor, class... Variants>
constexpr /*something*/ visit(Visitor&& vis, Variants&&... vars);
为什么std::visit 不采用单个变体,而是采用任意数量的变体?我的意思是,您总是可以使用一些标准库函数,并让它使用具有相同角色的多个参数,处理所有参数(例如,std::find() 用于容器中的多个元素);或者您可能会吸引多个访问者并在同一个变体上使用它们。
那么,为什么要进行这种特定的“变体”?
【问题讨论】:
标签: c++ std variadic-templates c++17 variant