Change the result_of behaviour with BOOST_RESULT_OF_USE_DECLTYPE

to make consistency between boost::result_of.