将std :: unique_ptr <int []>移动到Platform :: Collections :: Vector <int>

时间:2017-11-09 14:31:45

标签: uwp windows-runtime c++14 move-semantics c++-cx

我有一个指向动态数组的std :: unique_ptr。如何通过将该数组移动到新的Vector对象中来实例化Platform :: Collections :: Vector的新实例?理想情况下,这样的事情:

int length = 1024;
std::unique_ptr<int[]> p = std::make_unique<int[]>(length);
Vector<int>^ vec = ref new Vector<int>(std::move(p), length); // doesn't compile

有一个Vector构造函数将std :: vector移动到它中,但是我需要以某种方式将我的unique_ptr移动到该std :: vector。我还没有办法做到这一点,理想情况应该是这样的:

int length = 1024;
std::unique_ptr<int[]> p = std::make_unique<int[]>(length);
Vector<int>^ vec = ref new Vector<int>(std::vector<int>(std::move(p), length)); // doesn't compile

显然,由于性能方面的考虑,我不想复制。有没有人知道如何正确地做到这一点?

提前致谢。

0 个答案:

没有答案