Boost logo

Boost Users :

Subject: [Boost-users] [Thread] Can't compile package_task code with 1.54
From: Szymon Gatner (szymon.gatner_at_[hidden])
Date: 2013-05-31 18:56:29


Hi,

I just tried to compile my 1.52- based code with 1.54 beta and run into
package_task compilation issue.

In 1.52 I was using BOOST_THREAD_VERSION=3 define but with 1.54 I complied
with =4.

Test program:

#define BOOST_THREAD_VERSION 4

#include <boost/thread/future.hpp>
#include <boost/function.hpp>

struct MyFunc
{
  void operator()()const {}
};

int main()
{
  boost::function<void()> f;
  MyFunc mf;

  boost::packaged_task<void()> t1(f); // error 1
  boost::packaged_task<void()> t2(mf); // error 2
}

error 1 being:

d:\devel\boost_1_54_0_beta1\boost\thread\future.hpp(2848): error C2664:
'boost::detail::task_object<F,R>::task_object(boost::detail::task_object<F,R>
&)' : cannot convert parameter 1 from 'boost::function<Signature>' to
'boost::detail::task_object<F,R> &'

and error 2 similarly:

d:\devel\boost_1_54_0_beta1\boost\thread\future.hpp(2848): error C2664:
'boost::detail::task_object<F,R>::task_object(boost::detail::task_object<F,R>
&)' : cannot convert parameter 1 from 'MyFunc' to
'boost::detail::task_object<F,R> &'

(I tried with custom functor because I thought maybe error was related to
boost function)

Compiling with Visual Studio 2012 Update 3

Regards,
Szymon Gatner



Boost-users list run by williamkempf at hotmail.com, kalb at libertysoft.com, bjorn.karlsson at readsoft.com, gregod at cs.rpi.edu, wekempf at cox.net