I'm trying to create a move-only object asyncronously using Boost.Thread
unique_future but I'm running into trouble:
error C2248: 'A::A' : cannot access private member declared in class 'A'
c:\users\awl03\documents\visual studio
2005\projects\boost_1_51_0\boost\thread\future.hpp 493
I've tried all sorts of ways to work around this but always end up with
some variation or other of this error message. What am I doing wrong?
The code is below. The setup is:
Visual Studio 2005
Boost 1.51
Thanks,
Alex
#include
#include
#include
#include
using namespace boost;
class A : public noncopyable
{
BOOST_MOVABLE_BUT_NOT_COPYABLE(A)
public:
A(int i) {}
A(BOOST_RV_REF(A) other) {}
A& operator=(BOOST_RV_REF(A) other) {}
};
A create_a()
{
return A(42);
}
unique_future<A> async_create_a()
{
packaged_task<A> task(create_a);
unique_future<A> result = task.get_future();
thread(move(task)).detach();
return move(result);
}
int main()
{
A a = async_create_a().get();
return 0;
}
--
Swish - Easy SFTP for Windows Explorer (http://www.swish-sftp.org)