| Home | Libraries | People | FAQ | More

## Getting Started

### Installing the library

The library consists of include files only, hence there is no installation procedure. The `boost` include directory must be on the include path. There are a number of include files that give different functionality:

- `lambda/lambda.hpp` defines lambda expressions for different C++ operators, see the section called “Operator expressions”.

- `lambda/bind.hpp` defines `bind` functions for up to 9 arguments, see the section called “Bind expressions”.

- `lambda/if.hpp` defines lambda function equivalents for if statements and the conditional operator, see the section called “Lambda expressions for control structures” (includes `lambda.hpp`).

- `lambda/loops.hpp` defines lambda function equivalent for looping constructs, see the section called “Lambda expressions for control structures”.

- `lambda/switch.hpp` defines lambda function equivalent for the switch statement, see the section called “Lambda expressions for control structures”.

- `lambda/construct.hpp` provides tools for writing lambda expressions with constructor, destructor, new and delete invocations, see the section called “Construction and destruction” (includes `lambda.hpp`).

- `lambda/casts.hpp` provides lambda versions of different casts, as well as `sizeof` and `typeid`, see the section called “ Cast expressions ”.

- `lambda/exceptions.hpp` gives tools for throwing and catching exceptions within lambda functions, the section called “Exceptions” (includes `lambda.hpp`).

- `lambda/algorithm.hpp` and `lambda/numeric.hpp` (cf. standard `algortihm` and `numeric` headers) allow nested STL algorithm invocations, see the section called “Nesting STL algorithm invocations”.

Any other header files in the package are for internal use. Additionally, the library depends on two other Boost Libraries, the Tuple [tuple] and the type_traits [type_traits] libraries, and on the `boost/ref.hpp` header.

All definitions are placed in the namespace `boost::lambda` and its subnamespaces.

### Conventions used in this document

In most code examples, we omit the namespace prefixes for names in the `std` and `boost::lambda` namespaces. Implicit using declarations

    using namespace std;
    using namespace boost::lambda;

are assumed to be in effect.