One comment on the design of the tests: template instantiation is very expensive both in terms of compiler cycles and in terms of disk space taken up by the generated object code. We need to avoid instantiating more than the bare minimum of code. So for example, in tests/utilities/20.meta.help.cpp, test_integral_constant() would ideally be an ordinary function with the expected and tested values being passed in by the macro. Also, if there's a way to avoid using function templates (such as test_is_same_type) and use class templates instead it should save us some cycles (especially with optimization) and disk space.
As an aside, tests don't need to use the _STD macro. The test config header testdefs.h does the necessary magic to let us use the name std directly even when _RWSTD_NO_NAMESPACE is #defined. Martin Travis Vitek wrote:
I've posted what I've got for the current type_traits implementation to STDCXX-916. I would have just mailed the file to the list directly, but it is pretty big. http://issues.apache.org/jira/browse/STDCXX-916 The tests do compile and run on VC8. There are still a few failures. I'm in the process of porting this to linux/gcc4.3 and I'm expecting the results to be a bit better there because all of the necessary compiler support is available. Please review the code and provide feedback. It would be most helpful if any comments are pasted along with the block of code in question. Also, please don't focus on formatting to much. I know that I have a few lines that run over 76 characters wide and that I've left out some spaces after commas and before open parens. I'll deal with that stuff on my own. Note that some of the tests have type names that end in underscores. I'll be changing these to end in _t. It makes things more readable. Travis