On Wed, Nov 05, 2003 at 12:53:02PM +0000, Angus Leeming wrote:
> Andre Poenitz wrote:
> > Well... this exposes an implementation detail (type of container) to
> > the outer world. Moreover, people are tempted to use ++ on
> > iterators, whereas not too many poeple would use (&element(3) + 1)
> > 
> > So _I_'d prefer the accessor functions.
> 
> Hmpfff. I did as you suggested and all is working beautifully. However, I had to 
> jump through some big hoops on the way. Ahh well...
> 
> void read_scalar_field(std::istream & is,
>                        char const * identifier,
>                        support::size_type nnodes,
>                        boost::function2<void, support::size_type, double> set_value);
> 
> template <typename Element>
> void read_conc(std::istream & is, ElementList<Element> & elist)
> {
>         using support::size_type;
> 
>         // set_value(i, val) is equivalent to elist.node(i).set_conc(val);
>         boost::function2<void, size_type, double> set_value =
>                 boost::bind(&Node::set_conc,
>                             boost::bind(&ElementList<Element>::node, 
> boost::ref(elist), _1),
>                             _2);
> 
>         read_scalar_field(is, "CONCENTRATION", elist.nnodes(), set_value);
> }

You do not expect me to understand that, do you?

Andre'

-- 
Those who desire to give up Freedom in order to gain Security, will not have,
nor do they deserve, either one.     (T. Jefferson or B. Franklin or both...)

Reply via email to