使用 Boost

问题描述

我正在使用 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 (将#修改为@)