FUNCTION APPLY_VI(3)

NAME
boost::apply_visitor - 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.

SYNOPSIS

// In header: <boost/variant/apply_visitor.hpp>
template<typename Visitor, typename Variant>
  typename Visitor::result_type
  apply_visitor(Visitor & visitor, Variant & operand);
template<typename Visitor, typename Variant>
  typename Visitor::result_type
  apply_visitor(const Visitor & visitor, Variant & operand);
template<typename BinaryVisitor, typename Variant1, typename Variant2>
  typename BinaryVisitor::result_type
  apply_visitor(BinaryVisitor & visitor, Variant1 & operand1,
                Variant2 & operand2);
template<typename BinaryVisitor, typename Variant1, typename Variant2>
  typename BinaryVisitor::result_type
  apply_visitor(const BinaryVisitor & visitor, Variant1 & operand1,
                Variant2 & operand2);
template<typename Visitor>
  apply_visitor_delayed_t<Visitor> apply_visitor(Visitor & visitor);

DESCRIPTION

The behavior of apply_visitor is dependent on the number of arguments on which it operates (i.e., other than the visitor). The function behaves as follows: .sp .RS 4 .ie n &#8226;

Returns:
    The overloads acccepting operands return the result of applying the given visitor to the content of the given operands. The overload accepting only a visitor return a function object, thus delaying application of the visitor to any operands.

Requires:
    The given visitor must fulfill the StaticVisitor concept requirements with respect to each of the bounded types of the given variant.

Throws:
    The overloads accepting operands throw only if the given visitor throws when applied. The overload accepting only a visitor will not throw. (Note, however, that the returned function object may throw when invoked.)