错误C2143:语法错误:在'<'之前缺少','

1 c++ visual-studio-2012

下面的代码不能在vs 2012中编译.在第4行我得到一个错误C2143:语法错误:在'<'之前缺少','.有人可以帮我解决它.我会非常感激.

PS.不要专注于不区分大小写,我删除了一些东西,使代码更简单.

#include<functional>

template<typename Ty>
struct case_insensitive_less : public binary_function<Ty, Ty, bool>{
    bool operator()(Ty const& left, Ty const& right) const
    {
        return (left < right);
    }
};

int main(){}
Run Code Online (Sandbox Code Playgroud)

jua*_*nza 5

你需要std命名空间:

std::binary_function
Run Code Online (Sandbox Code Playgroud)

请注意,在C++ 11中不推荐使用std :: binary_function.如果您有C++ 11支持,请考虑使用std :: function和/或lambdas.