boost-variant
私はカスタムクラスを試していました。クラスのコンテンツにアクセスする安全な方法は を使用することだと理解しましたboost::static_visitor
。以下のコードがコンパイルされない理由を知っていますか? boost::static_visitor
使用するために署名/宣言に要件はありますか?
この質問を見つけましたなぜブースト::バリアントでこのカスタムタイプにアクセスできないのですか? しかし、私はそれを取得しませんでした。
よろしく
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 );
}