我正在尝试构建我的朋友的QT应用程序的OS X版本,他已经在Windows和Linux上构建了该应用程序。我们都使用g++,我正在使用gcc 4.2.1。不幸的是,我不知道他构建应用程序时使用的版本(那是相当长时间之前的事情)。
有人能解释一下为什么我会得到以下错误吗:
../../../src/dbapi/dbcore/node.h:24: error: 'dimensions' is not a type
当编译以下代码时:
Node.h:
template<class T,const unsigned int dimensions>
class EXPORT_DBCORE Node : public Transform<T,dimensions>
{
public:
Node( Id id,
QString& name,
QString& text = "",
// ************** Offending line: ***************
Vector<T,dimensions> position = Vector<T,dimensions>(),
Quaternion<T> rotation = Quaternion<T>() )
: Transform<T,dimensions>( position, rotation )
, mId( id )
, mName( name )
, mText( text )
{
}
private:
...
};
Vector.h:
template<class T,const unsigned int dimensions>
class EXPORT_DBCORE Vector
{
public:
//! Default Constructor
Vector()
{
mpArray = new T[dimensions];
for( int i = 0; i < dimensions; i++ )
{
mpArray[i] = 0;
}
}
...
谢谢。
编辑:如果第24行不清楚,请参考Node.h节选中的“Offending line”注释。
Node
头文件中包含了Vector
头文件?而且为什么要使用自己的向量类,既然Qt和标准库都有好用的类可以用? - Some programmer dude