C++ Boost几何点初始化

C++ Boost几何点初始化,c++,boost,initialization,point,boost-geometry,C++,Boost,Initialization,Point,Boost Geometry,我正在努力熟悉boost::geometry::point。在我的类中,我有一个没有参数的默认构造函数,在这种情况下,我想用零初始化所有的点值 由于set/get函数是模板,以下代码部分将在编译时产生错误: for( std::size_t i = 0; i < pnt.size() ; i++ ) { pnt.set<i>( 0.0 ); } (std::size_t i=0;i

我正在努力熟悉
boost::geometry::point
。在我的类中,我有一个没有参数的默认构造函数,在这种情况下,我想用零初始化所有的点值

由于set/get函数是模板,以下代码部分将在编译时产生错误:

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

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

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

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

您可以使用或(此选项仅适用于2、3和4个组件):

如果您使用的是自定义点类,则需要使用其中一个进行注册,以便能够使用Boost Geometry功能。你可以找到几个例子

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