Boost logo

Boost :

Subject: Re: [boost] [local_function] any interest in a LocalFunction library?
From: Pierre Morcello (pmorcell-cppfrance_at_[hidden])
Date: 2010-09-16 18:32:27


Hi Lorenzo, > Lorenzo Caminiti wrote : > I have decided to provide a single block macro > `BOOST_LOCAL_BLOCK` > which allows to bind both const and non const so the users > can decide > which bound variables need to be cons within the block and > which do > not. If you want a pure const-block then you'll simply bind > all > variable as `const&`. Blocks of course execute in-place > right where > they are defined. I have also kept the block break feature > via the > macro `BOOST_LOCAL_BLOCK_BREAK` (you get a compiler error > if you just > try to use `return`). I would have prefered to see the FUNCTION + 'return' personnally. But, I think I get your point : local unnamed macro function can be generated easily from your local named function. I made some tests to check and this seems ok for me, as long as several local classes can share the same name in a function. Here is an example of what I mean : void TestDoubleLocalFunc::aFunction(void) { { class unnamed { public: int that; } something; something.that = 1; } { class unnamed { public: std::string those; } something; something.those = ""; } } This use 2 local classes with the same name. It did compile under VS2008, however is it tolerated in C++ standard ? If not, I would prefer that you provide an unnamed local function macro which does not require the user to write once more the name of the function in LOCAL_FUNCTION_END(nameOfTheFunction). This is doable (see the first code I sent you), and would allow to write the name of the function only once, and not require it several times as in your actual LOCAL_FUNCTION macros. Best, Pierre


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk