我的代碼片段:的std :: vector的的push_back()導致一個奇怪的編譯時錯誤消息
void
RMWavefrontFileImporter::loadVertexIntoVector(
const std::vector<std:string> lineElements,
std::vector<const RM3DVertex>* vertices)
{
assert(vertices);
std::unique_ptr<const RM3DVertex> verticeRef = verticeWithElements(lineElements);
const RM3DVertex* vertex = vertexRef.get();
assert(vertex);
vertices->push_back(*vertex);
}
我收到錯誤消息:
無法初始化類型的參數「 void *',類型爲'const RM3DVertice *'的左值'
我無法看到問題。有什麼明顯的我失蹤了?
不應該是'vertices-> push_back(vertice);'?另外,你可能需要釋放unique_ptr ... – Pubby
@Pubby不,頂點聲明爲'std :: vector',我也會對第二部分說不。 unique_ptr似乎僅僅爲了將副本推回到向量中而持有堆分配對象。釋放會泄漏內存。 –
Borgleader
錯誤行是:'vertices-> push_back(* vertice);'?編譯器在抱怨這一行? – antonte