C++ 并发中的右值引用

C++ 并发中的右值引用,c++,concurrency,c++11,C++,Concurrency,C++11,我对新的VisualStudio本机并发运行时(ConcRT)有了一些了解。这仅仅是一个疏忽,还是有一个合理的理由认为数据的跨线程移动没有移动语义?它们都是复制语义。您不能移动到并发队列中,也不能使用asend等移动。您甚至不能移动并构造并发队列。我不知道这个特定的框架,但通常对于线程间队列,您必须具有复制语义 假设我创建了一个对象,获取指向它的引用/指针,然后将其移动到队列中。然后另一个线程将其移出队列。然后两个线程可以同时访问它 我认为在一般情况下,只需要添加或删除一个副本,而不是两个副本(

我对新的VisualStudio本机并发运行时(ConcRT)有了一些了解。这仅仅是一个疏忽,还是有一个合理的理由认为数据的跨线程移动没有移动语义?它们都是复制语义。您不能移动到并发队列中,也不能使用asend等移动。您甚至不能移动并构造并发队列。

我不知道这个特定的框架,但通常对于线程间队列,您必须具有复制语义

假设我创建了一个对象,获取指向它的引用/指针,然后将其移动到队列中。然后另一个线程将其移出队列。然后两个线程可以同时访问它


我认为在一般情况下,只需要添加或删除一个副本,而不是两个副本(即只需要一个副本)。e、 g.复制入移出,但这在语义上与复制入移出相同

在许多领域,右值支持可以提高浓度、制剂和PPL。与任何大型软件项目一样,当您构建依赖于其他新功能的功能时,能够同时交付所有内容总是存在一些风险

PPL是向前迈出的重要一步,但我们从未说过“完成了”。-)


如果您对ConcRT、PPL或代理库应该支持移动语义的地方有特别的建议,请在connect.microsoft.com中打开一个建议。

Hehe,它在本入门页中明确列出了关于CCR的内容:它可能太旧了,无法接受C++0x的改进。像这样的代码会持续一段时间。@Hans:这是右值引用的泛型“我们在MSVC10中支持它”,在CCR中没有具体的内容。我只是觉得它被列在CCR的起始页上很有趣。让我们不要忘记C++0x甚至还没有出来。:)@Kos:ConcRT是为具有右值引用的编译器显式编写的,因此它实际上并不重要。