$include_dir="/home/hyper-archives/boost/include"; include("$include_dir/msg-header.inc") ?>
From: Tom Brinkman (reportbase_at_[hidden])
Date: 2008-07-07 20:01:20
Joel de Guzman,
I'd like to enhance my future boost::layout library proposal
to use your boost::fusion.
Here is a simple example of the boost::layout framework, that uses
boost::gill as the view parameter.
A boost::layout functor takes the following form:
struct layer
{
template <typename view_t>
void operator()(view_t& view) {}
};
Examples of layers could be:
fill_layer<> fill;
border_layer<> border;
text_layer<> text;
Lets say I want to combine three layers into a single drawing
operation. Currently, I do it like this:
typedef boost::function<void (view_t&) > layer_t;
layer_t layers[] =
{
fill_layer<>,
border_layer<>,
text_layer<>
}
draw_layers draw(layers,sizeof(layers)/sizeof(layer_t));
boost::gil::rgb8view_t view;
draw(view);
This works fine, but I would like to improve it by using
boost fusion. Any suggestions or hints to get me started?