use BOOST_RESULT_OF_USE_DECLTYPE for Boost 1.48