我似乎遇到了編譯器/庫錯誤。當我嘗試MSVC - 我如何知道一個類型是否必須移動?
#include <iostream>
#include <type_traits>
#include <memory>
int main()
{
typedef std::unique_ptr<int> T;
std::cout << "is_copy_assignable: "
<< std::is_copy_assignable<T>::value
<< "\n"
<< "is_copy_constructible: "
<< std::is_copy_constructible<T>::value << "\n";
}
與Visual Studio 2012 Update 1中,我得到
is_copy_assignable: 1
is_copy_constructible: 1
代替
is_copy_assignable: 0
is_copy_constructible: 0
是否有其他解決方案?
還有一個相關的問題:https://stackoverflow.com/questions/34135409/why-does-is-copy-constructible-return-true-for-unique-ptr-in-msvc12 – stgatilov 2018-03-04 07:05:27