Я пытаюсь вызвать перегруженный метод из другого перегруженного элемента. Я получаю сообщение об ошибке C2664: Cannot convert argument 2 from std::vector<PK_BODY_T*, std::allocator<_Other>> to PK_BODY_T
Перегруженные методы - (Ошибка C2664: невозможно преобразовать из вектора <T> в T)
Код:
std::vector<PK_BODY_t*> FillHoles(std::vector<std::vector<PK_EDGE_t>> holes, PK_BODY_t inputBody)
{
std::vector<PK_BODY_t*> vectorBodies;
PK_BODY_t *pointerInputBody = new PK_BODY_t(inputBody);
vectorBodies.push_back(pointerInputBody);
std::vector<PK_BODY_t*> returnVector;
returnVector = FillHoles(holes, vectorBodies); //<-- ERROR HERE. Calling overloaded method.
delete pointerInputBody;
return returnVector;
}
/* overloaded version of FillHoles
*/
std::vector<PK_BODY_t*> FillHoles(std::vector<std::vector<PK_EDGE_t>> holes, std::vector<PK_BODY_t*> inputBody)
{
//...
std::vector<PK_BODY_t*> fillHoleOutput = FillOneHole(currentBody, currentHole);
return fillHoleOutput;
}
Похоже, если первый метод пытается назвать себя здесь, вместо второго перегруженного метода. Как заставить его использовать второй метод?
Что-то не так со мной или вы в самом деле ** ** сделать проход вектором векторов * по значению * ...? –
Для кодовых вопросов у вас должен быть [mcve] – NathanOliver