VS2010绑定实现不支持只移动类型?

时间:2012-01-18 00:40:41

标签: c++ visual-c++ c++11 visual-c++-2010 move-semantics

我发现以下代码无法在Visual Studio 2010中编译(但在GCC中可以正常工作):

using namespace std;
unique_ptr<string> up(new string("abc"));
auto bound = bind(&string::size, move(up));
bound();

我得到的错误是:

  

'std :: unique_ptr&lt; _Ty&gt; :: unique_ptr':无法访问私人会员   在类'std :: unique_ptr&lt; _Ty&gt;'

中声明

是否因为VS2010绑定实现不支持仅移动类型?

1 个答案:

答案 0 :(得分:7)

您的猜测是正确的:std::bind的Visual C ++ 2010实现不支持移动。请参阅错误报告"std::bind and std::function are not move-aware."

这是在即将推出的版本Visual C ++ 11中修复的。修复程序应该出现在9月发布的Visual C ++ Developer Preview中。