最新的intel C++編譯器是14.0.1.139或英特爾並行工作室xe 2013 sp1更新1.我想知道它是否支持隱式移動構造函數和移動賦值。我測試了下面的代碼,它似乎沒有工作。最新的intel C++編譯器是否支持隱式移動構造函數和移動賦值?
相關文章是here(搜索移動構造函數)。它說它支持。但我無法做到。
#include <memory>
#include <iostream>
#include <algorithm>
using namespace std;
class A
{
public:
unique_ptr<int> m;
};
int main()
{
A a;
A b(std::move(a));
}
編譯它在Windows作爲
icl main.cpp /Qstd=c++11
錯誤
main.cpp
main.cpp(10): error #373: "std::unique_ptr<_Ty, _Dx>::unique_ptr(const
std::unique_ptr<_Ty, _Dx>::_Myt &) [with _Ty=int, _Dx=std::default_delete<int>]"
(declared at line 1447 of "C:\Program Files (x86)\Microsoft Visual Studio
11.0\VC\include\memory") is inaccessible unique_ptr<int> m;
^
detected during implicit generation of "A::A(const A &)" at line 16
compilation aborted for main.cpp (code 2)
基本上在主函數A b(std::move(a));
二號線正在尋找的拷貝構造函數A::A(const A &)
少動構造A::A(const A &&)
等。當沒有隱式移動構造函數被生成時,這是通常的。但編譯器表示它支持隱式移動構造函數。我很困惑。謝謝。
你可以看看這裏http://software.intel.com/en-us/articles/c0x-features-supported-by-intel-c-compiler – ForEveR
相關文章是http://software.intel.com/en-us/articles/intel-composer-xe-2013-compilers-sp1-fixes-list。它表示支持。但我無法做到。 – user1899020
「似乎不起作用」是什麼意思? – juanchopanza