




Описание result_of дается в open_std.org. У Microsoft есть быстрый пример оболочка модульного теста, который использует result_of.
Простых случаев не бывает. Однако он используется в BOOST_AUTO, который может использоваться, например, в
BOOST_AUTO(x, make_pair(a, b));
Это полезно при метапрограммировании. Единственный раз, когда я использовал его, был в функции-обертке. Если result_of <T> :: type был недействительным, оболочка ничего не вернула. В противном случае он возвращает то, что возвращает обернутая функция.
просто чтобы вы знали, C++ позволяет в некоторых случаях возвращать void. например: "template <class T> T func () {return T ();}" допустимо, даже если T является недействительным.
Из примера Microsoft кажется, что преимущество result_of в том, что он добавляет признак, описывающий возвращаемый тип. Спасибо!