00001 #ifndef _BOOST_CMT_ASYNC_DELEGATE_HPP_
00002 #define _BOOST_CMT_ASYNC_DELEGATE_HPP_
00003 #include <boost/type_traits/function_traits.hpp>
00004 #include <boost/cmt/detail/async_delegate_impl.hpp>
00005 #include <boost/bind.hpp>
00006
00007 namespace boost { namespace cmt {
00008
00009 template<typename Signature>
00010 class async_delegate :
00011 public boost::cmt::detail::async_delegate_impl<boost::function_traits<Signature>::arity, Signature >
00012 {
00013 public:
00014 typedef Signature signature;
00015
00016 template<typename Functor>
00017 async_delegate( const Functor& slot, thread& s = thread::current() )
00018 :detail::async_delegate_impl<boost::function_traits<Signature>::arity, Signature >(slot,s){}
00019 };
00020
00021 }
00022
00023 #endif