Я использую пакет FEniCS, чтобы сделать некоторые FEM. Я пытаюсь вставить экземпляр DirichletBC в вектор типа const BoundaryCondition*
, В настоящее время у меня есть
std::vector<const BoundaryCondition*> bcs;
DirichletBC bcl(V0, c, left);
bcs.push_back(&bcl)
Хотя это сделано в примере, который я видел, я получаю ошибку
no matching function for call to
std::vector<const dolfin::BoundaryCondition*>::push_back(dolfin::DirichletBC&)
Просматривая файлы библиотеки dolfin, я вижу .i-файл SWIG typemap, который, по-видимому, допускает такое поведение, использую ли я это или что-то пропустил?
Я не знаю, почему мне понадобилось так много времени, чтобы просто попытаться создать вектор типа DirichletBC *. Теперь у меня есть
std::vector<const DirichletBC*> bcs;
DirichletBC bcl(V0, c, left);
bcs.push_back(&bcl)
и работает нормально.