我試圖構建我的朋友的QT應用程序的OS X版本,他在Windows和Linux上構建了這個應用程序。我們都使用g ++。我正在使用gcc 4.2.1。不幸的是,我不知道他在構建應用程序時使用了什麼版本(很早以前)。非類型模板參數錯誤('x'不是類型)
任何人都可以揭示爲什麼我收到錯誤一些輕:
../../../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」註釋表示。
你能否給我們提示代碼段中的哪一行是第24行? –
你在'Node'頭文件中包含了'Vector'頭文件嗎?當Qt和標準庫都有良好的工作類時,爲什麼要使用自己的矢量類? –
是gcc 4.2.1最新的編譯器嗎?也許如果你切換到最近版本的鏗鏘聲,它會工作,否則你會得到更好的錯誤信息。 – bames53