Chris@16
|
1 /*
|
Chris@16
|
2 A variadic implementation of variadic boost::signals2::signal, used when variadic
|
Chris@16
|
3 template support is detected in the compiler.
|
Chris@16
|
4
|
Chris@16
|
5 Author: Frank Mori Hess <fmhess@users.sourceforge.net>
|
Chris@16
|
6 Begin: 2009-05-26
|
Chris@16
|
7 */
|
Chris@16
|
8 // Copyright Frank Mori Hess 2009
|
Chris@16
|
9 // Use, modification and
|
Chris@16
|
10 // distribution is subject to the Boost Software License, Version
|
Chris@16
|
11 // 1.0. (See accompanying file LICENSE_1_0.txt or copy at
|
Chris@16
|
12 // http://www.boost.org/LICENSE_1_0.txt)
|
Chris@16
|
13
|
Chris@16
|
14 // For more information, see http://www.boost.org
|
Chris@16
|
15
|
Chris@16
|
16 #ifndef BOOST_SIGNALS2_VARIADIC_SIGNAL_HPP
|
Chris@16
|
17 #define BOOST_SIGNALS2_VARIADIC_SIGNAL_HPP
|
Chris@16
|
18
|
Chris@16
|
19 #include <boost/preprocessor/control/expr_if.hpp>
|
Chris@16
|
20 #include <boost/signals2/detail/variadic_arg_type.hpp>
|
Chris@16
|
21 #include <boost/signals2/detail/variadic_slot_invoker.hpp>
|
Chris@16
|
22 #include <boost/type_traits/function_traits.hpp>
|
Chris@16
|
23
|
Chris@16
|
24 namespace boost
|
Chris@16
|
25 {
|
Chris@16
|
26 namespace signals2
|
Chris@16
|
27 {
|
Chris@16
|
28 namespace detail
|
Chris@16
|
29 {
|
Chris@16
|
30 template<typename Signature> class variadic_extended_signature;
|
Chris@16
|
31 // partial template specialization
|
Chris@16
|
32 template<typename R, typename ... Args>
|
Chris@16
|
33 class variadic_extended_signature<R (Args...)>
|
Chris@16
|
34 {
|
Chris@16
|
35 public:
|
Chris@16
|
36 typedef boost::function<R (const boost::signals2::connection &, Args...)> function_type;
|
Chris@16
|
37 };
|
Chris@16
|
38 } // namespace detail
|
Chris@16
|
39 } // namespace signals2
|
Chris@16
|
40 } // namespace boost
|
Chris@16
|
41
|
Chris@16
|
42 #include <boost/signals2/detail/signal_template.hpp>
|
Chris@16
|
43
|
Chris@16
|
44 #endif // BOOST_SIGNALS2_VARIADIC_SIGNAL_HPP
|