我正在 Boost Geometry 库之上编写库代码。我的课程应该以坐标类型(通常是 int/float/double 等)为模板。下面的代码(精简到最低限度)无法编译,我得到一个对我没有帮助的编译错误。
编码:
#include <boost/geometry.hpp>
#include <boost/geometry/geometries/point.hpp>
template <typename CoordType>
class MyClass {
public:
typedef boost::geometry::model::point<CoordType, 2, boost::geometry::cs::cartesian> MyPoint;
CoordType getX(const MyClass<CoordType>::MyPoint &p) const { return p.get<0>(); }
};
错误:
test.cpp: In member function 'CoordType MyClass<CoordType>::getX(const MyClass<CoordType>::MyPoint&) const':
test.cpp:8:82: error: expected primary-expression before ')' token
我正在使用以下代码编译此代码:g++ -I./boost_1_54_0 test.cpp -o test.o
. 我使用了不同版本的 G++ 4.5.2/4.7.2/4.8.1,但我仍然得到同样的错误。
我在这里想念什么?提前致谢。