2

コードの私のスニペット:

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 RM3DVerice *' の左辺値で初期化することはできません

私は問題を見ていません。私が見逃している明らかなものはありますか?

4

1 に答える 1

6

aの値の型は、 CopyInsertible または MoveInsertibleTである必要があります。std::vector<T>いずれかであるためには、道徳的に同等のものを呼び出す必要があります

T* tptr = <allocate-memory-over-here-and-make-it-look-like-a-T*>
new(tptr) T(std::forward<Args>(args);

T型の場合、これconstは機能しません。たとえば、ifが という形式のからT*への変換がないためです。から を削除します。void*TX constconststd::vector<const RM3DVertice>

于 2013-08-31T23:09:18.400 に答える