Betrachten Sie die folgende (in Betrieb) Snippet:Eigen const TensorMap
Eigen::ArrayXd x (8);
x << 1, 2, 3, 4, 5, 6, 7, 8;
Eigen::TensorMap<Eigen::Tensor<double, 2>> y (x.data(), 2, 4);
Dies wird auch funktioniert:
const Eigen::ArrayXd const_x = x;
const Eigen::Map<const Eigen::ArrayXXd> z (const_x.data(), 2, 4);
Ich versuche, herauszufinden, warum ich dies aber nicht tun können:
const Eigen::TensorMap<const Eigen::Tensor<double, 2>> const_y (const_x.data(), 2, 4);
ich verwende Eigen 3.3.3 (auch versucht, 3.3.4)
Könnten Sie fügen Sie Ihre Übersetzungsfehler nimmt? –
Probieren Sie "const Eigen :: TensorMap> const_y (const_x.data(), 2, 4);". Beachten Sie das "const double" innerhalb von Eigen :: Tensor. –
Haben Sie den Vorschlag von @CarlodelMundo versucht? Es scheint zu funktionieren, obwohl es keine Standard-Eigensyntax ist - aber das Tensor-Modul als Ganzes folgt nicht mehreren Eigen-Standards (beginnend mit der Bezeichnung "TensorMap" anstelle von "Map" und "Map '). –
chtz