C++ 如何绑定变量apply\u访问者?

C++ 如何绑定变量apply\u访问者?,c++,boost,bind,variant,C++,Boost,Bind,Variant,我已经得到了这段(C++03)代码,但不知何故,bind拒绝工作。你知道为什么吗 typedef boost::variant<int, string> Container; std::vector<Container> v; ... class IsBad: public boost::static_visitor<> { public: typedef bool result_type; result_type operator()(in

我已经得到了这段(C++03)代码,但不知何故,
bind
拒绝工作。你知道为什么吗

typedef boost::variant<int, string> Container;
std::vector<Container> v; 
...
class IsBad: public boost::static_visitor<>
{
public:
    typedef bool result_type;
    result_type operator()(int& t) const    { return  i % 2;     }
    result_type operator()(string& s) const { return s == "foo"; }
};
IsBad isBad;
std::vector<Container>::iterator it2 = 
         std::find_if(it, itEnd, bind(apply_visitor(isBad, _1)));
// bool is not a class, struct or union type
typedef boost::variant容器;
std::向量v;
...
类IsBad:public boost::static\u visitor
{
公众:
typedef bool result_type;
结果类型运算符()(int&t)常量{return i%2;}
result_type operator()(string&s)const{return s==“foo”}
};
是坏是坏;
std::vector::迭代器it2=
std::find_if(it、itEnd、bind(apply_visitor(isBad,_1));
//bool不是类、结构或联合类型

您不必使用
bind
apply\u visitor(isBad)
已经返回了一个函子。

您不必使用
bind
apply\u visitor(isBad)
已经返回了一个函子。

您不必使用
bind
apply\u visitor(isBad)
已经返回了一个函子。

您不必使用
bind
apply\u visitor(isBad)
已经返回了一个函子。

另外,请注意不要嵌套
typedef bool result\u type
您可以将返回类型放入基类声明中,比如
class IsBad:public boost::static\u visitor
另外,请注意,不要嵌套
typedef bool result\u type
您可以将返回类型放入基类声明中,比如
class IsBad:public boost::static\u visitor
另外,请注意,不要嵌套
typedef bool result\u type
您可以将返回类型放入基类声明中,比如
class IsBad:public boost::static\u visitor
另外,请注意,不要嵌套
typedef bool result\u type
您可以将返回类型放入基类声明中,如
类IsBad:public boost::static\u visitor