OpenMesh 报错“Use dereferencing operators -> and * instead.”的解决

今天直接编译老师给的材料里几年前的代码,用的是OpenMesh 7.1的库,在 handle() 函数中遇到了“This function clutters your code. Use dereferencing operators -> and * instead.”的问题,搜索发现网上的解答不多,而且大多OpenMesh的教程都是前几年的,比较过时了。按照提示改代码后解决了,但由此引出了不少相关的问题,大多是之前的函数在 OpenMesh7 中不再支持的原因。在这里总结一下两个现在已经deprecated的函数。

1. handle()

示例代码:

        //输出所有的顶点
	for (auto it = mesh.vertices_begin(); it != mesh.vertices_end(); it++) 
	{
		auto point = mesh.point(it.handle());//这里会报错,应该改成auto point = mesh.point(*it);

		std::cout << point[0] << "," << point[1] << "," << point[2] << std::endl;
	}

在这里,it是迭代器,但mesh.point(it.handle())这里会报错“This function clutters your code. Use dereferencing operators -> and * instead.”,让你不要再用 handle(),而是用*。也就是把it.handle()改成 *it,就可以了,这两句代

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值