使用静态访问者从boost :: variant中检索数据

时间:2014-01-22 00:00:03

标签: c++ boost boost-variant

我有像这样的静态访客设置

struct visitor : public boost::static_visitor<std::string&> {

obj& m_data;
visitor(obj& data) : m_data(data) {}

std::string& operator()(key_type_1& k1) const {
return m_data.get(k1);
}

std::string& operator()(key_type_2& k2) const {
return m_data.get(k2);
}

}

没有编译错误,一切看起来都不错。 但是,这个测试用例失败了 -

std::string x = boost::apply_visitor(visitor(data1), variant);
std::string y = boost::apply_visitor(visitor(data2), variant);

第二个调用仍在尝试从data1中检索。我在这里做错了吗?

0 个答案:

没有答案