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...)