WindowsとLinuxで構築した友人のQTアプリケーションのOS X版をビルドしようとしています。我々はどちらも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;
}
}
...
ありがとう。
EDIT:No行24の行が不明な場合は申し訳ありません。Node.hの抜粋の "Offending line"コメントで示されています。
コードスニペットのどの行が24行目であるかのヒントを教えてください。 –
'Node'ヘッダファイルに' Vector'ヘッダファイルを含めましたか?なぜQtと標準ライブラリの両方が良い作業クラスを持っているのでしょうか? –
gcc 4.2.1は最新のコンパイラですか?たぶん最近のバージョンのclangに切り替えるとうまくいくか、より良いエラーメッセージが出るでしょう。 – bames53