次のようなテンプレート化された固有関数を作成できることがわかりました。
template <>
CIL_EXPORTS
void gpa<std::complex<float>>(const Eigen::EigenBase<std::complex<float>>& Data);
関数には、DenseBase のメソッドも必要です。両方の基本クラスからメソッドにアクセスするにはどうすればよいですか?
"Eigen::EigenBase < std::complex < float > > " という表現は意味がありません。EigenBase テンプレート引数は、スカラー型ではなく、派生クラスです。行列、配列などである必要があります。一般に、テンプレート パラメーターである必要があります。まずはこのページをお読みください。
いずれにせよ、正しい EigenBase または DenseBase を取得したら、arg.derived() を使用するか、一度派生型にキャストすることにより、(基本クラスではなく) 派生クラス メンバーにアクセスできます: const Derived& mat(arg.derived( ));