| Home | Libraries | People | FAQ | More

## Struct template pod_generator

boost::proto::pod_generator — A generator that wraps expressions passed to it in the specified extension wrapper and uses aggregate initialization for the wrapper.

## Synopsis

    // In header: <boost/proto/generate.hpp>

    template<template< typename > class Extends>
    struct pod_generator :  proto::callable {
      // member classes/structs/unions
      template<typename This, typename Expr>
      struct result<This(Expr)> {
        // types
        typedef Extends< Expr > type;
      };

      // public member functions
      template<typename Expr> Extends< Expr > operator()(Expr const &) const;
    };

## Description

Generators are intended for use as the first template parameter to the `proto::domain<>` class template and control if and how expressions within that domain are to be customized. `proto::pod_generator<>` wraps each expression passed to it in the `Extends<>` wrapper, and uses aggregate initialzation for the wrapped object.

### `pod_generator` public member functions

1.     template<typename Expr> Extends< Expr > operator()(Expr const & expr) const;

   Parameters:

   `expr` | A Proto expression

   Returns: | `Extends<Expr> that = {expr}; return that;`