У меня есть проблема с определением некоторых постоянных векторов Eigen (eigen.tuxfamily.org) в заголовочном файле, но, очевидно, это скорее проблема компилятора, чем проблема, специфичная для Eigen ..
Определение этого в заголовочном файле:
const double[] hardcodedData = {1,2,3};
const Vector3d myConstVector(hardcodedData);
отлично работает с использованием Microsoft VC2010 через Cython / distutils (который я использую для тестирования).
После того, как файл заголовка включен, я могу получить доступ к myConstVectory из каждой функции / метода / любой другой и использовать его для расчетов.
Используя тот же код с:
Оптимизирующий компилятор Microsoft (R) C / C ++ версии 17.00.50727.1 для x64
который вызывается ABAQUS 6.13-2, программным обеспечением для конечных элементов,
каждый константный вектор инициализируется нулями! До сих пор я не нашел обходного пути, кроме как использовать что-то вроде этого:
const Vector3d myConstVector()
{
const static Vector3d vec(hardcodedData);
return vec;
}
Этот обходной путь в порядке, но не совсем то, что я намеревался сделать. Также у него есть некоторые накладные расходы.
Есть ли чистое решение для запуска «жестко запрограммированной» опции? Спасибо заранее!
Задача ещё не решена.