Guillaume Munch wrote: > Dear list, > > > Here is a patch that removes all uses of std::bind and boost::bind in > src/. I think this is something that we want in the long term, because > it makes the changed code much more readable and maintainable.
You mean std::bind, or did I miss any remaining boost::bind? > I am conflicted about it, be cause I would like to be eventually able to > read and maintain things that have to do with concurrency, but I would > not like to introduce hard-to-debug crashes. It no longer crashes for > me, but I did not understand the cause of the previous crash. > > Any advice? Also, since this touches a lot of sensitive code it would > not hurt if someone offered to proof-read it. For me personally the patch is too big to proof-read it. I'd prefer to change simple things like - BufferStorage::iterator it = bstore.begin(); - BufferStorage::iterator end = bstore.end(); - for (; it != end; ++it) { - Buffer * buf = *it; + for(Buffer * buf : bstore) which are not related to removal of std::bind first. Apart from that I am not too familiar with lambdas yet, so for me personally the new code is more difficult to read than the old one ATM, and I am probably not the only one. Your explanation to Richard is nice, but it will soon be buried in email archives, and people reading LyX sources do not see it. I am not opposed to using lambdas (I hope I can learn soemthing from you here), but I believe that our developer documentation should contain a short motivation why they are used in LyX (you basically explained already to Richard how they make code more readable), and a pointer to a more detailed introduction to lambdas. Then it should also be possible for novices or old- timers like me to understand the new hot stuff. Georg