gpt4 book ai didi

c++ - 将两个变体与 boost static_visitor 进行比较

转载 作者:太空狗 更新时间:2023-10-29 23:07:19 25 4
gpt4 key购买 nike

几天前我开始使用 boost 库,所以我的问题可能是微不足道的。我想将两个相同类型的变体与 static_visitor 进行比较。我尝试了以下,但它不想编译。

struct compare:public boost::static_visitor<bool>
{
bool operator()(int& a, int& b) const
{
return a<b;
}

bool operator()(double& a, double& b) const
{
return a<b;
}
};
int main()
{
boost::variant<double, int > v1, v2;
v1 = 3.14;
v2 = 5.25;
compare vis;
bool b = boost::apply_visitor(vis, v1,v2);
cout<<b;
return 0;
}

感谢您的任何帮助或建议!

最佳答案

llonesmiz 在评论中告诉我答案,但它消失了。如果有人有类似的问题,它可能会有所帮助:我必须处理不同运算符中 int 和 double 的每种组合。实现它的最简单方法是使用模板,如下所示:

struct my_less : boost::static_visitor<bool>
{
template<typename T, typename U>
bool operator()(T a, U b) const
{
return a<b;
}

};

关于c++ - 将两个变体与 boost static_visitor 进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13213963/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com