這個示例代碼應該編譯? clang
和g++
接受它,而icc 14
拒絕這樣做,抱怨auto t = ...
std::unique_ptr
的複製構造函數未定義。C++ 11 - 元組和移動語義
#include <iostream>
#include <memory>
#include <tuple>
std::tuple<std::unique_ptr<int[]>, int> foo()
{
std::unique_ptr<int[]> a;
unsigned int b;
auto t = std::make_tuple(std::move(a), b);
return std::move(t);
}
int main()
{
foo();
}
返回rvalues有什麼問題? – akappa
但我要返回一個'T',而不是'T &&'。我認爲它應該是安全的無論如何 – akappa
對不起,沒有注意到。 :) – 0x499602D2