に従いますC++数学ライブラリEigen3を使用するC++ライブラリをコンパイルしています。 VC2013でコンパイルするときただし、以下のコードは、いくつかの構文エラーを導入:C++クラスはテンプレートキーワード
template <typename Derived>
inline Eigen::Transform<typename Derived::Scalar, 3, Eigen::Isometry> v2t(const Eigen::MatrixBase<Derived>& x_) {
Eigen::Transform<typename Derived::Scalar, 3, Eigen::Isometry> X;
Eigen::Matrix<typename Derived::Scalar, 6, 1> x(x_);
X.template linear() = quat2mat(x.template block<3,1>(3,0));
X.template translation() = x.template block<3,1>(0,0);
return X;
}
次のようなエラーメッセージは次のとおりです。
Error C2059 syntax error : 'template'
Error C2039 'X' : is not a member of 'Eigen::Transform<float,3,1,0>'
Error C2059 syntax error : 'template'
Error C2039 'X' : is not a member of 'Eigen::Transform<float,3,1,0>'
私はそのX.template
のようなコードを見たことがないので、私はどのように私は考えていますこのコンパイルエラーを修正することができます。何か案は?
あなたはどのバージョンのEigenを使用していますか?私は最新のコピーをつかんで、そのコードを見つけることができませんでした...そのコードは、あなたがコンパイルしているライブラリで、それは次にEigenを参照していますか? 'X.template linear()'は 'X.template linear()'または単に 'X.linear()'のようなものでなければなりません。 –
txtechhelp
@txtechhelp私はEigenをコンパイルしていません。 Eigenを使用しています。http://jacoposerafin.com/nicp/ – feelfree
'X.template'と' x.template'は有効ではありません。C++;それらの表現が意味するものは何ですか? –