Eigen::VectorXd
a un Scalar operator()(Index i)
qui renvoie le coefficient à l'index i
dans le vecteur. Cependant, puisque Eigen::VectorXd
est un type spécial d'un Eigen::Matrix
, c'est-à-dire de type Eigen::Matrix;
, il y a aussi un Scalar operator()(Index i, Index j)
.
Question :
Puis-je supposer que c'est sûr (c'est-à-dire qu'il n'y a pas de comportement indéfini) d'utiliser la deuxième version si je définis j
à zéro ? En d'autres termes, le code ci-dessous est-il correct ?
Eigen::VectorXd v(4);
v << 1, 2, 3, 4;
std::cout << v(2, 0); // affiche 3
Il semble que ce soit correct, il n'y a pas d'assertions échouées ou d'avertissements lors de la compilation en mode débogage avec tous les avertissements activés, mais je ne suis pas sûr à 100%.