Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

This is the documentation for an old version of boost. Click here for the latest Boost documentation.
PrevUpHomeNext

Class template visitor_ptr_t

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

Synopsis

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 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.

Copyright © 2002, 2003 Eric Friedman, Itay Maman

PrevUpHomeNext