from main.cpp:3: /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional: In instantiation of 'std::_Bind_result': /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/thread:135:9: instantiated from 'std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = Run&, _Args = {}]' main.cpp:68:17: instantiated from here /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional:1365:7: error: 'std::_Bind_result<_Result, _Functor(_Bound_args ...)>::_Bind_result(const std::_Bind_result<_Result, _Functor(_Bound_args ...)>&) [with _Result = void, _Functor = Run, _Bound_args = {}, std::_Bind_result<_Result, _Functor(_Bound_args ...)> = std::_Bind_result]' declared to take const reference, but implicit declaration would take non-const /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional: In constructor 'std::_Bind_result<_Result, _Functor(_Bound_args ...)>::_Bind_result(const _Functor&, _Args&& ...) [with _Args = {}, _Result = void, _Functor = Run, _Bound_args = {}]': /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional:1477:41: instantiated from 'typename std::_Bindres_helper<_Result, _Functor, _ArgTypes>::type std::bind(_Functor&&, _ArgTypes&& ...) [with _Result = void, _Functor = Run&, _ArgTypes = {}, typename std::_Bindres_helper<_Result, _Functor, _ArgTypes>::type = std::_Bind_result]' /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/thread:135:9: instantiated from 'std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = Run&, _Args = {}]' main.cpp:68:17: instantiated from here /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional:1357:59: error: no matching function for call to 'Run::Run(const Run&)' /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional:1357:59: note: candidate is: main.cpp:38:5: note: Run::Run() main.cpp:38:5: note: candidate expects 0 arguments, 1 provided /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional: In constructor 'std::_Bind_result<_Result, _Functor(_Bound_args ...)>::_Bind_result(std::_Bind_result<_Result, _Functor(_Bound_args ...)>&&) [with _Result = void, _Functor = Run, _Bound_args = {}, std::_Bind_result<_Result, _Functor(_Bound_args ...)> = std::_Bind_result]': /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional:1477:41: instantiated from 'typename std::_Bindres_helper<_Result, _Functor, _ArgTypes>::type std::bind(_Functor&&, _ArgTypes&& ...) [with _Result = void, _Functor = Run&, _ArgTypes = {}, typename std::_Bindres_helper<_Result, _Functor, _ArgTypes>::type = std::_Bind_result]' /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/thread:135:9: instantiated from 'std::thread::thread(_Callable&&, _Args&& ...) [with _Callable = Run&, _Args = {}]' main.cpp:68:17: instantiated from here /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional:1368:78: error: no matching function for call to 'Run::Run(std::remove_reference::type)' /usr/lib/gcc/x86_64-pc-linux-gnu/4.6.2/include/g++-v4/functional:1368:78: note: candidate is: main.cpp:38:5: note: Run::Run() main.cpp:38:5: note: candidate expects 0 arguments, 1 provided