Klaim - Joël Lamotte wrote:
Daniel Walker wrote:
BOOST_RESULT_OF_USE_DECLTYPE is automatically defined when BOOST_NO_CXX11_DECLTYPE_N3276 is not defined; i.e. it's only enabled by default when the compiler has fairly complete decltype support including N3276. As of Boost 1.53.0, it appears this is not the case for any version of Visual Studio. (See boost/config/compiler/visualc.hpp starting at line 224 for unsupported features.) I don't know if there's been any progress on that front from Microsoft, but as soon as N3276 is enabled in Boost's compiler config file, result_of will use decltype by default for that compiler.
Would it be unrealistic to fallback on std::result_of for VS2012 versions only? It would fix most result_of bugs in Boost caused on this plateform.
The following patch will allow your use case to work, I believe: https://svn.boost.org/trac/boost/ticket/7753 This has been discussed before, but I think your report is another data point indicating that users would prefer something that deduces correctly for all cases, even though it changes the deduction of a nullary function type from what TR1 would do. Nate