...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
boost::apply_visitor /*three or more variant parameters*/
// In header: <boost/variant/multivisitors.hpp> template<typename MultiVisitor, typename Variant1, typename Variant2, typename Variant3> typename MultiVisitor::result_type apply_visitor /*three or more variant parameters*/(MultiVisitor & visitor, Variant1 & operand1, Variant2 & operand2, Variant3 & operand3, ... other_operands); template<typename MultiVisitor, typename Variant1, typename Variant2, typename Variant3> typename MultiVisitor::result_type apply_visitor /*three or more variant parameters*/(const MultiVisitor & visitor, Variant1 & operand1, Variant2 & operand2, Variant3 & operand3, ... other_operands);
Allows compile-time checked type-safe application of the
given visitor to the content of the given variant, ensuring that all
types are handled by the visitor. See apply_visitor
for more information.