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