计算Point2D <ucs>和Point2D <gcs> </gcs> </ucs>之间的差异

时间:2010-11-03 20:29:20

标签: c++ generics geometry typechecking

This is related to the a thread that was posted earlier in this forum.

What are some recommended frameworks for manipulating spatial data in C++?

您是否知道几何库可以提供基于泛型的编译时保护,不会混合使用UCS和GCS坐标?例如,我正在寻找允许我编写这样的代码的东西:

Point2D<GCS> p1( 1.0, 1.0 );
Point2D<UCS> p2( 1.0, 1.0 );
std::cout << (p1 - p2) << std::endl; // compile-time error: mixing types!

我不需要保护混合不同的UCS,只混合GCS和UCS。混合局部和全局坐标系统是一个完全可以避免的错误,可以通过适当的簿记来消除,这应该使用C ++强大的类型检查和泛型支持来简化。我宁愿使用现有的库而不是重新发明轮子。

1 个答案:

答案 0 :(得分:0)

您可以编写将UCS转换为GCS的函数。然后,当两者都在GCS中时,您可以执行std::cout<<(p1-p2)<<"\n;

然后,由于混合类型,将不会出现编译错误。