任意の Eigen-Vector/Array タイプのコンテンツを std::array に変換しようとしています。Eigen doc http://eigen.tuxfamily.org/dox/TopicFunctionTakingEigenTypes.htmlからこの部分を読んだので、これが私の関数です:
template<typename DERIVED>
std::array<typename Eigen::DenseBase<DERIVED>::Scalar, Eigen::DenseBase<DERIVED>::RowsAtCompileTime>
toStl (const Eigen::DenseBase<DERIVED>& input)
{
... // Do conversion
}
問題は、コピーを取得するために入力パラメーターの型からアンパサンドを削除すると、空の入力変数が取得されることです。係数 0 の偽の値が含まれており、残りはゼロです。
パラメータを参照すると、すべて正常に動作します。理由を教えてもらえますか?
PS .: なぜ私がコピーを取りたいのか疑問に思われる方のために。オプティマイザを支援するために、この講演で提案されていますか: http://www.youtube.com/watch?v=eR34r7HOU14 (後半から終了まで)