我正在尝试boost-variant
自定义类。我知道访问课程内容的一种安全方法是使用boost::static_visitor
. 你知道为什么下面的代码不能编译吗?对使用的签名/声明是否有任何要求boost::static_visitor
?
我发现了这个问题Why can't I visit this custom type with boost::variant? 但我没明白。
问候
AFG
#include <iostream>
#include <algorithm>
#include <boost/variant.hpp>
struct CA{};
struct ca_visitor : public boost::static_visitor<CA>
{
const CA& operator()(const CA& obj ) const { return obj;}
};
struct CB{};
struct cb_visitor : public boost::static_visitor<CB>
{
const CB& operator()(const CB& obj) const { return obj;}
};
int main(){
typedef boost::variant<
CA
,CB > v_type;
v_type v;
const CA& a = boost::apply_visitor( ca_visitor(), v );
}