如何解决为什么在模板内部无法使用完全有效的本征方法?
在模板化方法中,我具有以下代码行:
Eigen::Vector3f d = start.cast<double>();
其中没有编译错误:
error: expected primary-expression before ‘double’
115 | Eigen::Vector3f d = start.cast<double>();
这确实可以编译:
Eigen::Vector3f d = start;
撇开我使用的强制转换方法实际上是在本征中定义的事实。语法很好,如果有任何编译器应告诉我该方法不存在。
这是该方法的精简版本(仍然会导致问题):
template<
typename V,typename G,typename Vec = decltype(std::declval<V>().position)
>
std::vector<Vec> ComputeGradientLine(
HMesh<V>& mesh,const Vec& start,uint face_id,const G& gradient)
{
Eigen::Vector3f d = start.cast<float>();
return {};
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。