id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 2742,Why the at_thread_exit cleanup function is const?,viboes,Anthony Williams,"If I remove the const on operator()() {{{ #!cpp struct mycallable1 { void operator()() { std::cout << ""mycallable1"" << std::endl; }; }; void my_thread() { std::cout << ""my_thread"" << std::endl; mycallable1 x; boost::this_thread::at_thread_exit(x); } }}} I get the following error: {{{ gcc.compile.c++ ..\..\..\bin.v2\libs\interthreads\test\hello_world.test\gcc-4.3.2\debug\target-os-cygwin\threadapi-pthread\threading-multi\hello_world.o ../../../boost/thread/detail/thread.hpp: In member function `void boost::detail::thread_exit_function::operator()() const [with F = mycallable1]': ..\example\hello_world.cpp:52: instantiated from here ../../../boost/thread/detail/thread.hpp:474: error: passing `const mycallable1' as `this' argument of `void mycallable1::operator()()' discards qualifiers }}} Why the cleanup function must be const? ",Patches,closed,Boost 1.39.0,thread,Boost 1.37.0,Problem,fixed,at_thread_exit,