The value type T
of a std::vector<T>
needs to be CopyInsertible or MoveInsertible. To be either, it is necessary to call the moral equivalent of
T* tptr = <allocate-memory-over-here-and-make-it-look-like-a-T*>
new(tptr) T(std::forward<Args>(args);
With T
being a const
type this doesn't work, e.g., because there is no conversion from T*
to void*
if T
is of the form X const
. You want to remove the const
from std::vector<const RM3DVertice>
.