/usr/include/boost/thread/detail
NameSizeModeActions
atomic_redef_macros.hpp6440644editdlrm
atomic_undef_macros.hpp9130644editdlrm
config.hpp181490644editdlrm
counter.hpp24410644editdlrm
delete.hpp17120644editdlrm
force_cast.hpp9980644editdlrm
function_wrapper.hpp20920644editdlrm
invoke.hpp513430644editdlrm
invoker.hpp230780644editdlrm
is_convertible.hpp13450644editdlrm
lockable_wrapper.hpp9800644editdlrm
log.hpp24710644editdlrm
make_tuple_indices.hpp90040644editdlrm
memory.hpp14650644editdlrm
move.hpp105480644editdlrm
nullary_function.hpp57580644editdlrm
platform.hpp28600644editdlrm
platform_time.hpp153450644editdlrm
singleton.hpp11880644editdlrm
thread.hpp263120644editdlrm
thread_group.hpp42790644editdlrm
thread_heap_alloc.hpp6310644editdlrm
thread_interruption.hpp12280644editdlrm
thread_safety.hpp58550644editdlrm
tss_hooks.hpp25310644editdlrm
variadic_footer.hpp2620644editdlrm
variadic_header.hpp5370644editdlrm
Edit: /usr/include/boost/thread/detail/function_wrapper.hpp (2092B)
// Copyright (C) 2013 Vicente J. Botet Escriba // // Distributed under the Boost Software License, Version 1.0. (See accompanying // file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) // // 2013/09 Vicente J. Botet Escriba // Adapt to boost from CCIA C++11 implementation // Make use of Boost.Move #ifndef BOOST_THREAD_DETAIL_FUNCTION_WRAPPER_HPP #define BOOST_THREAD_DETAIL_FUNCTION_WRAPPER_HPP #include #include #include #include #include #include namespace boost { namespace detail { class function_wrapper { struct impl_base { virtual void call()=0; virtual ~impl_base() { } }; typedef boost::csbl::unique_ptr impl_base_type; impl_base_type impl; template struct impl_type: impl_base { F f; impl_type(F const &f_) : f(f_) {} impl_type(BOOST_THREAD_RV_REF(F) f_) : f(boost::move(f_)) {} void call() { if (impl) f(); } }; public: BOOST_THREAD_MOVABLE_ONLY(function_wrapper) //#if ! defined BOOST_NO_CXX11_RVALUE_REFERENCES template function_wrapper(F const& f): impl(new impl_type(f)) {} //#endif template function_wrapper(BOOST_THREAD_RV_REF(F) f): impl(new impl_type(boost::forward(f))) {} function_wrapper(BOOST_THREAD_RV_REF(function_wrapper) other) BOOST_NOEXCEPT : impl(other.impl) { other.impl = 0; } function_wrapper() : impl(0) { } ~function_wrapper() { } function_wrapper& operator=(BOOST_THREAD_RV_REF(function_wrapper) other) BOOST_NOEXCEPT { impl=other.impl; other.impl=0; return *this; } void operator()() { impl->call();} }; } } #endif // header