error C2338

error C2338

par Alexandre Aubry,
Nombre de réponses : 4

Bonjour à tous,

Dans le devoir 2, lors de la création de la surface de révolution, j’obtiens l'erreur ci-dessous. Après de nombreuses tentatives je n'arrive pas à débugger ce problème. J'ai bien fait attention à ce qu'il n'y ai que des double dans RV et que des int dans RF. Savez-vous à quoi pourrait correspondre cette erreur ?

Je peux fournir mon code en privé si besoin

Bonne soirée,

Alexandre

C:\Users\alex\Documents\ETS\MTI836\libigl\external\eigen\Eigen\src/Core/AssignEvaluator.h(834,3): error C2338: YOU_MIXED_DIFFERENT_NUMERIC_TYPES__YOU_NEED_TO_USE_THE_CAST_
METHOD_OF_MATRIXBASE_TO_CAST_NUMERIC_TYPES_EXPLICITLY [C:\Users\alex\Documents\ETS\MTI836\libigl-devoir-revolution base-code v1.01\libigl-devoir-revolution base-code v1.01
\build\example_bin.vcxproj]

En réponse à Alexandre Aubry

Re: error C2338

par Alexandre Aubry,
J'ai en fait résolu le problème
En réponse à Alexandre Aubry

Re: error C2338

par Eric Paquette,
Pour le bénéfice de tous, si vous avez le temps, expliquez quel était le problème. Est-ce que vous essayez d'assigner une matrice d'un type (disons double) dans une matrice d'un autre type (disons int)?
En réponse à Eric Paquette

Re: error C2338

par Alexandre Aubry,
Oui c'était cette assignation que j'étais en train de faire, il suffisait de rajouter cette ligne par exemple pour corriger le problème :
const Eigen::MatrixXd RV=RV1.cast<double>();
En réponse à Alexandre Aubry

Re: error C2338

par Eric Paquette,
L'utilisation de « .cast() » ne devrait pas être nécessaire. Probablement que la matrice RV1 n'est pas du bon type (n'est pas MatrixXd, peut-être serait-elle MatrixXi ou autre chose).