File indexing completed on 2025-12-16 10:08:48
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012 #ifndef BOOST_SIGNALS2_SIGNAL_HPP
0013 #define BOOST_SIGNALS2_SIGNAL_HPP
0014
0015 #include <algorithm>
0016 #include <boost/assert.hpp>
0017 #include <boost/config.hpp>
0018 #include <boost/core/noncopyable.hpp>
0019 #include <boost/function.hpp>
0020 #include <boost/mpl/identity.hpp>
0021 #include <boost/shared_ptr.hpp>
0022 #include <boost/signals2/connection.hpp>
0023 #include <boost/signals2/detail/unique_lock.hpp>
0024 #include <boost/signals2/detail/replace_slot_function.hpp>
0025 #include <boost/signals2/detail/result_type_wrapper.hpp>
0026 #include <boost/signals2/detail/signals_common.hpp>
0027 #include <boost/signals2/detail/signals_common_macros.hpp>
0028 #include <boost/signals2/detail/slot_groups.hpp>
0029 #include <boost/signals2/detail/slot_call_iterator.hpp>
0030 #include <boost/signals2/optional_last_value.hpp>
0031 #include <boost/signals2/mutex.hpp>
0032 #include <boost/signals2/slot.hpp>
0033 #include <functional>
0034
0035 #ifdef BOOST_NO_CXX11_VARIADIC_TEMPLATES
0036 #include <boost/signals2/preprocessed_signal.hpp>
0037 #else
0038 #include <boost/signals2/variadic_signal.hpp>
0039 #endif
0040
0041 namespace boost
0042 {
0043 namespace signals2
0044 {
0045
0046 template<typename Signature,
0047 typename Combiner,
0048 typename Group,
0049 typename GroupCompare,
0050 typename SlotFunction,
0051 typename ExtendedSlotFunction,
0052 typename Mutex>
0053 void swap(
0054 signal<Signature, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex> &sig1,
0055 signal<Signature, Combiner, Group, GroupCompare, SlotFunction, ExtendedSlotFunction, Mutex> &sig2) BOOST_NOEXCEPT
0056 {
0057 sig1.swap(sig2);
0058 }
0059 }
0060 }
0061
0062 #endif