
Hello Eric, Sunday, January 7, 2007, 8:31:10 AM, you wrote:
The following trivial use of boost::result_of fails on msvc-7.1 and msvc-8.0:
#include <boost/utility/result_of.hpp>
template<typename T> struct function { template<typename Sig> struct result;
template<typename This, typename U> struct result<This(U)> { typedef U type; }; };
int main() { boost::result_of<function<void>(int)>::type i = 0; return 0; }
The attached patch works around the problem. (Yes, I've reported this to Microsoft.) I've also added some additional test cases to catch this problem (see result_of_test.cpp attached).
I've confirmed the tests pass on msvc-7.1, msvc-8.0, gcc-3.4, gcc-4.0 and gcc-4.1. The following compilers should also be tested, but I don't have access to them. Can anybody help out?
gcc-3.3 cw-9.4 intel-* sun-5.8 qcc-* hp_cxx_* acc
Any help is much appreciated.
I've tried Intel C++ Compiler 9.1 for Windows (9.1.033) on Boost head repository. The test above compiles and passes both with and without the patch. -- Best regards, Andrey mailto:andysem@mail.ru