boost::variant
通过识别其中的特定类型并将其作为成员函数参数传递给类对象,我混淆了以下问题 。考虑以下代码
typedef boost::variant<int, string, double> Variant;
class test{
void func1 (Variant V);
void func2 (string s);
void func3 ();
};
test::func1(Variant V){
// How can I identify the type of V inside the body of this function?
Or how can I call the apply_visitor inside this function.
/*
if(v.type() == string)
func2();
else if(v.type() == double)
funct3();
*/
}
int test::func2(){ cout << "func3" << endl;}
int test::func3(){ cout << "func4" << endl;}
...
int main ()
{
test t;
Variant V = 3;
t.func1(V);
V = "hello";
t.func1(V);
}
我想确定在类测试中实现访问类/结构(apply_visitor)。但是,我从访问者类中实现的重载运算符调用外部成员函数,即 func3(string s) 被卡住了。