typedef boost::variant<int, double> Type;
class Append: public boost::static_visitor<>
{
public:
void operator()(int)
{}
void operator()(double)
{}
};
Type type(1.2);
Visitor visitor;
boost::apply_visitor(visitor, type);
次のように、追加のデータを受け取るようにビジターを変更することは可能ですか?
class Append: public boost::static_visitor<>
{
public:
void operator()(int, const std::string&)
{}
void operator()(double, const std::string&)
{}
};
この文字列値は、Append オブジェクトの有効期間中に変更されます。この場合、コンストラクターを介して文字列を渡すことはできません。