2012-09-18 52 views
1

我想熟悉boost::geometry::point。在我的课上,我有一个没有参数的默认构造函数,我想在这种情况下初始化所有的零点值。Boost几何点初始化

由于设置/获取函数模板,下面的代码部分将在编译时产生的错误:

for(std::size_t i = 0; i < pnt.size() ; i++) 
    { 
     pnt.set<i>(0.0); 
    } 

要引用文档http://www.boost.org/doc/libs/1_51_0/libs/geometry/doc/html/geometry/reference/models/model_point.html

我需要设置一些值,因为:

坐标未初始化。如果带参数的构造函数未被调用,并且未使用set或assign指定点,则坐标值将包含垃圾。

有没有办法在编译时用零初始化所有值?如果没有,那么在运行时?

回答

1

您可以使用assign_zeroassign_values(这个只适用于2,3和4的组件):如果你正在使用时,您需要一个寄存器中的BOOST_GEOMETRY_REGISTER_POINT...之一,它的自定义点类

boost::geometry::assign_zero(pnt); 
boost::geometry::assign_values(pnt, 0.0, 0.0); 

为了能够使用Boost几何功能。你可以找到几个例子here