问题描述
我正在使用 BOOST c++ 库。我收到以下警告:
boost_1_73_0/boost/geometry/policies/robustness/rescale_policy.hpp:46:34: warning: ‘factor’ may be used uninitialized in this function [-Wmaybe-uninitialized],m_multiplier(the_factor)
and
/boost_1_73_0/boost/geometry/policies/robustness/get_rescale_policy.hpp:241:21: note: ‘factor’ was declared here
factor_type factor;
如何解决这个问题?
一个最小的复制示例如下:
#include "boost/assign/std/vector.hpp"
#include "boost/geometry.hpp"
#include "boost/geometry/algorithms/area.hpp"
#include "boost/geometry/algorithms/assign.hpp"
#include "boost/geometry/algorithms/intersection.hpp"
#include "boost/geometry/geometries/point_xy.hpp"
#include "boost/geometry/geometries/polygon.hpp"
#include "boost/geometry/io/dsv/write.hpp"
using namespace boost::assign;
typedef boost::geometry::model::d2::point_xy<double> point_type;
typedef boost::geometry::model::polygon<point_type> polygon_type;
typedef boost::geometry::model::segment<point_type> segment_type;
typedef boost::geometry::model::linestring<point_type> Linestring;
typedef boost::geometry::model::multi_point<point_type> BMultiPoint;
Intersection_between_polygon::Intersection_between_polygon(std::vector<Vector2d> F1,std::vector<Vector2d> F2)
{
std::vector<point_type> points_1(F1.size() + 1);
for (size_t i = 0; i < F1.size(); ++i)
points_1[i] = point_type(F1[i](0),F1[i](1));
points_1[points_1.size() - 1] = point_type(F1[0](0),F1[0](1));
polygon_type poly_1;
boost::geometry::assign_points(poly_1,points_1);
std::vector<point_type> points_2(F2.size() + 1);
for (size_t i = 0; i < F2.size(); ++i)
points_2[i] = point_type(F2[i](0),F2[i](1));
points_2[points_2.size() - 1] = point_type(F2[0](0),F2[0](1));
polygon_type poly_2;
boost::geometry::assign_points(poly_2,points_2);
std::deque<polygon_type> output;
boost::geometry::correct(poly_1);
boost::geometry::correct(poly_2);
boost::geometry::intersection(poly_1,poly_2,output);
// if I comment the above function,then warning disappears ...
}
我发现如果注释了“intersection(poly_1,output)”,警告就会消失。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)