std :: async с std :: unique не компилируется

#include <iostream>
#include <memory>
#include <future>

using namespace std;

unique_ptr<int> uq(new int);

void foo(unique_ptr<int> q)
{}

int main()
{
    foo(move(uq));
    // ^ OK

    async(foo, move(uq));
    // ^ Error: error C2248: 'std::unique_ptr<_Ty>::unique_ptr' :
    //    cannot access private member declared in class 'std::unique_ptr<_Ty>'
}

Почему «асинхронный» не компилируется? Я использую Microsoft Visual Studio 2012 (v4.5.50709).

Ответы на вопрос(1)

Ваш ответ на вопрос