
Le 27/09/11 08:43, Ben Robinson a écrit :
This submission would make it possible to write a complete set of unit tests for meta-programs, to test both the positive, compiling statements, and the negative, non-compiling statements. These tests will all compile, and the negative tests can throw an exception instead of failing to compile. ... I look forward to your feedback. Thank you,
Hi, I start to understand what you want to achieve. Your example is quite simple and shows that in general there will be a redundancy on the test, once to avoid the invalid instantiation and the other to assert the valid condition (even if in your example you have used the test to end the recursion to give a valid value). If I have understood correctly the result of the meta-function should be something that behaves as a valid result when the condition is not satisfied. I'm not sure this is always possible, as Dave as already said, and even if it is possible in common cases this should not always be simple. The documentation should show more concrete cases. Other uses of meta-asserts could use intermediary results. Avoiding compilation failure in these cases will result in additional complexity on the meta-function implementation. In order to see if your approach can be used in regular meta-programs it would be great if you can show more complex examples can be written with a without your macros. Best, Vicente