
on Wed Oct 10 2012, Paul Mensonides <pmenso57-AT-comcast.net> wrote:
On 10/9/2012 6:07 PM, Dave Abrahams wrote:
What's the point of showing REPEAT here? It doesn't seem to be used below. Are you just illustrating that you can build REPEAT and ENUM using the same foundation?
It is just a tacit illustration of generality and reusability. Doing the same ala Boost.Preprocessor has far greater implications. In fact, in Boost.Preprocessor, there are a relatively few number of core algorithms--each of which has its own recursion state. Then there are a few derived algorithms which are hacked to look like they use one of those states. Lastly, there are a bunch of algorithms implemented in terms of the more low-level ones. None of those are reentrant. The above redirection, on the other hand, has no usability consequences other than that a natively built REPEAT or ENUM would be /slightly/ faster due to not passing around and invoking the separators.
Very nice :-) Sorry, TL;DR on the rest of the message right now but I will try to come back to it in coming days. -- Dave Abrahams BoostPro Computing Software Development Training http://www.boostpro.com Clang/LLVM/EDG Compilers C++ Boost