提升几何点初始化
Boost geometry point initialization
我正在尝试熟悉boost::geometry::point
。在我的类中,我有一个没有参数的默认构造函数,在这种情况下我想用零初始化所有点值。
由于 set/get 函数是模板,因此以下代码部分将在编译时产生错误:
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 分配点,则坐标值将包含垃圾。
有没有办法在编译时用零初始化所有值?如果不是,那么在运行时?
您可以使用
assign_zero
或assign_values
(这个仅适用于 2、3 和 4 个组件):
boost::geometry::assign_zero(pnt);
boost::geometry::assign_values(pnt, 0.0, 0.0);
如果您使用的是自定义点类,则需要使用其中一个BOOST_GEOMETRY_REGISTER_POINT...
进行注册,以便能够使用增强几何功能。您可以在此处找到几个示例。
相关文章:
- 未初始化的浮点指针
- 为什么指针在初始化后保持空点
- 模板静态成员的初始化点
- 在定义(.cpp文件)中初始化静态浮点 constexpr 成员是可能的
- 在不同翻译单元中具有静态存储持续时间的依赖非局部常量浮点变量的常量初始化
- 当INT初始化为浮动点值时,为什么填充初始化不会给出错误
- C 我可以用双重初始化类型浮点的变量
- 视觉效果如何使用New New初始化一个智能点
- 提升几何点初始化
- 初始化极值的浮点变量
- 来自非初始化变量的值从何而来
- 使用浮点文本初始化 const int
- 在没有 new 关键字的情况下初始化C++对象的内存从何而来
- 在C++14中,对浮点变量进行双重赋值的统一初始化不会产生缩小错误
- float的类内静态常量初始化与C++中的int有何不同
- 如何初始化类内浮点常量
- 如何在Visual Studio中初始化C++类中的静态常量浮点值
- 未初始化的浮点(C++)
- 未初始化的浮点变量,再现不确定的行为
- 在c++中使用浮点字面值初始化整型数组的成员