Возвращает тип, который будет возвращен, обезвредив итератор.
template<
typename I
>
struct deref
{
typedef unspecified type;
};
result_of::deref<I>::type
Тип возврата: Любой тип
Семантии: Возвращает результат обезличивания итератора типа I.
#include <boost/fusion/iterator/deref.hpp>
#include <boost/fusion/include/deref.hpp>
typedef vector<int,int&> vec;
typedef const vec const_vec;
typedef result_of::begin<vec>::type first;
typedef result_of::next<first>::type second;
typedef result_of::begin<const_vec>::type const_first;
typedef result_of::next<const_first>::type const_second;
BOOST_MPL_ASSERT((boost::is_same<result_of::deref<first>::type, int&>));
BOOST_MPL_ASSERT((boost::is_same<result_of::deref<second>::type, int&>));