[/
 / Copyright (c) 2008 Eric Niebler
 /
 / Distributed under the Boost Software License, Version 1.0. (See accompanying
 / file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 /]

[import ../example/hello.cpp]
[import ../example/calc1.cpp]
[import ../example/calc2.cpp]
[import ../example/calc3.cpp]
[import ../example/lazy_vector.cpp]
[import ../example/mixed.cpp]
[import ../example/rgb.cpp]
[import ../example/tarray.cpp]
[import ../example/vec3.cpp]
[import ../example/vector.cpp]
[import ../example/map_assign.cpp]
[import ../example/futures.cpp]
[import ../example/mini_lambda.cpp]

[/===============]
[section Examples]
[/===============]

A code example is worth a thousand words ...

[/================================================================================]
[section:hello_world Hello World:
    Building an Expression Template and Evaluating It]
[/================================================================================]

A trivial example which builds and expression template and evaluates it.

[HelloWorld]

[endsect]

[/==================================================]
[section:calc1 Calc1: Defining an Evaluation Context]
[/==================================================]

A simple example that builds a miniature domain-specific embedded language for lazy arithmetic expressions, with TR1 bind-style argument placeholders.

[Calc1]

[endsect]

[/============================================================]
[section:calc2 Calc2: Adding Members Using [^proto::extends<>]]
[/============================================================]

An extension of the Calc1 example that uses _extends_ to make calculator expressions valid function objects that can be used with STL algorithms.

[Calc2]

[endsect]

[/===============================================]
[section:calc3 Calc3: Defining a Simple Transform]
[/===============================================]

An extension of the Calc2 example that uses a Proto transform to calculate the arity of a calculator expression and statically assert that the correct number of arguments are passed.

[Calc3]

[endsect]

[/==============================================================]
[section:lazy_vector Lazy Vector: Controlling Operator Overloads]
[/==============================================================]

This example constructs a mini-library for linear algebra, using expression templates to eliminate the need for temporaries when adding vectors of numbers.

This example uses a domain with a grammar to prune the set of overloaded operators. Only those operators that produce valid lazy vector expressions are allowed.

[LazyVector]

[endsect]

[/========================================================]
[section:rgb RGB: Type Manipulations with Proto Transforms]
[/========================================================]

This is a simple example of doing arbitrary type manipulations with Proto transforms. It takes some expression involving primary colors and combines the colors according to arbitrary rules. It is a port of the RGB example from _PETE_.

[RGB]

[endsect]

[/=====================================================]
[section:tarray TArray: A Simple Linear Algebra Library]
[/=====================================================]

This example constructs a mini-library for linear algebra, using expression templates to eliminate the need for temporaries when adding arrays of numbers. It duplicates the TArray example from _PETE_.

[TArray]

[endsect]

[/========================================================]
[section:vec3 Vec3: Computing With Transforms and Contexts]
[/========================================================]

This is a simple example using `proto::extends<>` to extend a terminal type with additional behaviors, and using custom contexts and `proto::eval()` for evaluating expressions. It is a port of the Vec3 example from _PETE_.

[Vec3]

[endsect]

[/========================================================]
[section:vector Vector: Adapting a Non-Proto Terminal Type]
[/========================================================]

This is an example of using `BOOST_PROTO_DEFINE_OPERATORS()` to Protofy expressions using `std::vector<>`, a non-Proto type. It is a port of the Vector example from _PETE_.

[Vector]

[endsect]

[/=============================================================]
[section:mixed Mixed: Adapting Several Non-Proto Terminal Types]
[/=============================================================]

This is an example of using `BOOST_PROTO_DEFINE_OPERATORS()` to Protofy expressions using `std::vector<>` and `std::list<>`, non-Proto types. It is a port of the Mixed example from _PETE_.

[Mixed]

[endsect]

[/=======================================================]
[section:map_assign Map Assign: An Intermediate Transform]
[/=======================================================]

A demonstration of how to implement `map_list_of()` from the Boost.Assign library using Proto. `map_list_assign()` is used to conveniently initialize a `std::map<>`. By using Proto, we can avoid any dynamic allocation while building the intermediate representation.

[MapAssign]

[endsect]

[/===========================================================]
[section:future_group Future Group: A More Advanced Transform]
[/===========================================================]

An advanced example of a Proto transform that implements Howard Hinnant's design for /future groups/ that block for all or some asynchronous operations to complete and returns their results in a tuple of the appropriate type.

[FutureGroup]

[endsect]

[/========================================================]
[section:lambda Lambda: A Simple Lambda Library with Proto]
[/========================================================]

This is an advanced example that shows how to implement a simple lambda DSEL with Proto, like the Boost.Lambda_library. It uses contexts, transforms and expression extension.

[Lambda]

[endsect]

[endsect]
