Попытка познакомиться с С++ 17, я только что заметил std::visit
:
template <class Visitor, class... Variants>
constexpr /*something*/ visit(Visitor&& vis, Variants&&... vars);
Почему std::visit
не брать ни одного варианта, а сколько угодно вариантов? Я имею в виду, что вы всегда можете использовать некоторую стандартную библиотечную функцию и иметь несколько параметров с одинаковой ролью, работая над всеми из них (например, std::find()
для нескольких элементов в контейнере); или вы можете брать нескольких посетителей и использовать их в одном и том же варианте.
Итак, почему эта конкретная "вариация"?