【发布时间】:2017-03-28 09:49:13
【问题描述】:
我的任务是创建一个模板类型数组而不调用 T(模板)构造函数。之后,我想用 std::move 将一些值从另一个数组移到这个数组。我怎样才能在 C++ 中做到这一点?这是我的代码:
void *temp = malloc((end-begin) * sizeof(T));
for (unsigned int i = begin; i < end; ++i){
temp[i] = std::move(array[i]);
}
但这行不通。编译器说明如下: 指向不完整类型“void”的指针的下标。
【问题讨论】:
-
哇,使用带有C++11标签的原始malloc?
-
寻求调试帮助的问题(“为什么这段代码不起作用?”)必须包括所需的行为、特定的问题或错误以及重现它所需的最短代码在问题本身。没有明确的问题陈述的问题对其他读者没有用处。请参阅:How to create a Minimal, Complete, and Verifiable example。
-
看看placement new。