Я получил ту же ошибку компиляции с VS2010 и исправил ее, унаследовав от std::unary_function
:
struct IsEven : std::unary_function<int, bool>
Я рассмотрел это только из-за result
, появившегося в сообщении об ошибке. Я могу только догадываться, что std::ref
в VS2010 зависит от typedef
s в unary_function
:
template <class Arg, class Result>
struct unary_function {
typedef Arg argument_type;
typedef Result result_type;
};
EDIT:
См. Ответ от Приветствия и hth. - Alf относительно ошибки в VS2010.