std::result_of is a C++11 metafunction that provides the result of calling a function type with a given set of argument types.
The class template std::result_of is defined in the C++11 standard library and is a type transformation trait i.e. a metafunction that takes one type and produces another type.
The nested type std::result_of<F(A, B, C)>::type is a typedef for the type that would be returned by the expression f(a, b, c) for a callable object f of type F and arguments of types A, B and C.