| Home | Libraries | People | FAQ | More

## Class template visitor_ptr_t

boost::visitor_ptr_t — Adapts a function pointer for use as a static visitor.

## Synopsis

    // In header: <boost/variant/visitor_ptr.hpp>

    template<typename T, typename R>
    class visitor_ptr_t : public static_visitor<R> {
    public:
      // construct/copy/destruct
      explicit visitor_ptr_t(R (*)(T));

      // static visitor interfaces
      R operator()(unspecified-forwarding-type);
      template<typename U> void operator()(const U&);
    };

## Description

Adapts the function given at construction for use as a static visitor of type `T` with result type `R`.

### `visitor_ptr_t` public construct/copy/destruct

1.     explicit visitor_ptr_t(R (*)(T));

   Effects: | Constructs the visitor with the given function.

### `visitor_ptr_t` static visitor interfaces

1.     R operator()(unspecified-forwarding-type operand);
       template<typename U> void operator()(const U&);

   Effects: | If passed a value or reference of type `T`, it invokes the function given at construction, appropriately forwarding `operand`.
   Returns: | Returns the result of the function invocation.
   Throws: | The overload taking a value or reference of type `T` throws if the invoked function throws. The overload taking all other values always throws `bad_visit`.