2017-08-10 2 views
0

J'ai des problèmes avec une fonction utilisant la bibliothèque Eigen C++. C'est une version sur un modèle de l'un de leurs exemples mais je n'arrive pas à le faire fonctionner dans xcode.Est-il possible d'utiliser des expressions de blocs Eigen avec des paramètres basés sur des modèles comme lvalue?

template <typename Scalar> 
void foo(){ 
    Eigen::Matrix<Scalar, 2, 2> m = Eigen::Matrix<Scalar, 2, 2>::Identity(); 
    Eigen::Matrix<Scalar, 4, 4> a = Eigen::Matrix<Scalar, 4, 4>::Constant(0.6); 
    a.topLeftCorner<2,2>() = m; //Expected expression! 
    std::cout << "result:" << std::endl << a << std::endl << std::endl; 
    } 

Ce code ne sera pas compilé en raison d'une erreur "Expression attendue". Je n'ai pas réellement appelé la fonction n'importe où et cela fonctionne très bien si je ne le modèle pas et utilise à la place le double ou le flottant. Y a-t-il une raison pour que cela ne fonctionne pas pour la version modélisée?

Répondre