
On Wed, Nov 16, 2011 at 9:34 AM, Andrzej Krzemienski <akrzemi1@gmail.com> wrote:
Do you have any preference? FUNCTION or CLOSURE? And also a), b1), b2), c) or d)? (Or something else...)
Hi Lorenzo, Now that I have better understood your library, my personal preference goes towards "closure". The reason for that is:
1. "Closure" better reflects the nature of your library: you provide a tool for defining closures: something more than functions, and something less than lambda expressions. 2. This may make the learning of the library easier. If I know I am dealing with closures I already expect binding functionality; there will be less questions like "what is this 'bind' and what does it actually do?" 3. It may be a marketing bonus "closure" sounds (IMO) more attractive than "function".
How about Boost.Closure library? "Local" may not even be necessary, because "closure" somehow implies locality. (you do not need a global closure, because global function will do).
Yes, I was thinking about it after you suggest it yesterday. I'd say the options become: a) Boost.Local: BOOST_LOCAL_FUNCTION[_END], BOOST_LOCAL_EXIT[_END], BOOST_LOCAL_BLOCK[_END] b2) Boost.Nested: BOOST_NESTED_FUNCTION[_END], BOOST_NESTED_SCOPE_EXIT[_END], BOOST_NESTED_BLOCK[_END] c) Boost.Scoped: BOOST_SCOPED_FUNCTION[_END], BOOST_SCOPED_EXIT[_END], BOOST_SCOPED_BLOCK[_END] e) Boost.Closure: BOOST_CLOSURE[_END], BOOST_CLOSURE_SCOPE_EXIT[_END], BOOST_CLOSURE_BLOCK[_END] I also like Boost.Closure (and related macro names). Maybe BOOST_CLOSURE_SCOPE_EXIT is the only one that sounds a bit strange but I still think it does not sound bad. I'd like to hear opinions from other Boosters :) Thanks for the idea! --Lorenzo