Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2024-11-15 09:31:05

0001 /*
0002   A variadic implementation of variadic boost::signals2::signal, used when variadic
0003   template support is detected in the compiler.
0004 
0005   Author: Frank Mori Hess <fmhess@users.sourceforge.net>
0006   Begin: 2009-05-26
0007 */
0008 // Copyright Frank Mori Hess 2009
0009 // Use, modification and
0010 // distribution is subject to the Boost Software License, Version
0011 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
0012 // http://www.boost.org/LICENSE_1_0.txt)
0013 
0014 // For more information, see http://www.boost.org
0015 
0016 #ifndef BOOST_SIGNALS2_VARIADIC_SIGNAL_HPP
0017 #define BOOST_SIGNALS2_VARIADIC_SIGNAL_HPP
0018 
0019 #include <boost/core/enable_if.hpp>
0020 #include <boost/preprocessor/control/expr_if.hpp>
0021 #include <boost/signals2/detail/variadic_arg_type.hpp>
0022 #include <boost/signals2/detail/variadic_slot_invoker.hpp>
0023 #include <boost/smart_ptr/make_shared.hpp>
0024 #include <boost/type_traits/function_traits.hpp>
0025 #include <boost/type_traits/is_void.hpp> 
0026 
0027 namespace boost
0028 {
0029   namespace signals2
0030   {
0031     namespace detail
0032     {
0033       template<typename Signature> class variadic_extended_signature;
0034       // partial template specialization
0035       template<typename R, typename ... Args>
0036         class variadic_extended_signature<R (Args...)>
0037       {
0038       public:
0039         typedef boost::function<R (const boost::signals2::connection &, Args...)> function_type;
0040       };
0041     } // namespace detail
0042   } // namespace signals2
0043 } // namespace boost
0044 
0045 #include <boost/signals2/detail/signal_template.hpp>
0046 
0047 #endif // BOOST_SIGNALS2_VARIADIC_SIGNAL_HPP