
At Tue, 4 Jan 2011 11:30:02 -0500, Howard Hinnant wrote:
Hi Howard,
Neat stuff! Was there a real-world use case driving this work, or are you just going all Knuth on us in your copious spare time?
One of my first applications of for_each_combination was for writing unit tests for rvalue reference overloading. This was done in 2004 or 2005, and so those tests are now obsolete due to the language changes since then. But in a nutshell I needed to write tests that covered every combination of passing an lvalue or rvalue, not-cv-qualified, const, volatile and const volatile qualified, to a set of overloaded set of functions each taking one parameter. That one parameter was a cv-qaulified lvalue or rvalue reference (each combination). And I needed to consider all combinations of that set of 8 overloaded functions 1 at a time, 2 at time, etc. up to 8 at a time.
Here is one file containing just 8 tests that considered all 8 overloads at once:
Hah, I wouldn't have guessed you did this to solve a metaprogramming problem! -- Dave Abrahams BoostPro Computing http://www.boostpro.com