linuxdcpp-team team mailing list archive
-
linuxdcpp-team team
-
Mailing list archive
-
Message #07799
[Branch ~dcplusplus-team/dcplusplus/trunk] Rev 3377: re-apply rev 2211.1.3
------------------------------------------------------------
revno: 3377
committer: poy <poy@xxxxxxxxxx>
branch nick: trunk
timestamp: Fri 2013-12-06 21:58:25 +0100
message:
re-apply rev 2211.1.3
modified:
SConstruct
dcpp/Speaker.h
--
lp:dcplusplus
https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk
Your team Dcplusplus-team is subscribed to branch lp:dcplusplus.
To unsubscribe from this branch go to https://code.launchpad.net/~dcplusplus-team/dcplusplus/trunk/+edit-subscription
=== modified file 'SConstruct'
--- SConstruct 2013-12-06 00:08:00 +0000
+++ SConstruct 2013-12-06 20:58:25 +0000
@@ -67,7 +67,6 @@
'release' : []
}
-# TODO remove _VARIADIC_MAX if/when VC has proper variadic template support
msvc_defs = {
'common' : ['_REENTRANT', 'snprintf=_snprintf'],
'debug' : ['_DEBUG', '_HAS_ITERATOR_DEBUGGING=0', '_SECURE_SCL=0'],
=== modified file 'dcpp/Speaker.h'
--- dcpp/Speaker.h 2013-12-06 00:08:00 +0000
+++ dcpp/Speaker.h 2013-12-06 20:58:25 +0000
@@ -39,68 +39,12 @@
Speaker() noexcept { }
virtual ~Speaker() { }
- /// @todo simplify when we have variadic templates
-
- template<typename T0>
- void fire(T0&& type) noexcept {
- Lock l(listenerCS);
- tmp = listeners;
- for(auto i: tmp) {
- i->on(forward<T0>(type));
- }
- }
-
- template<typename T0, typename T1>
- void fire(T0&& type, T1&& p1) noexcept {
- Lock l(listenerCS);
- tmp = listeners;
- for(auto i: tmp) {
- i->on(forward<T0>(type), forward<T1>(p1));
- }
- }
-
- template<typename T0, typename T1, typename T2>
- void fire(T0&& type, T1&& p1, T2&& p2) noexcept {
- Lock l(listenerCS);
- tmp = listeners;
- for(auto i: tmp) {
- i->on(forward<T0>(type), forward<T1>(p1), forward<T2>(p2));
- }
- }
-
- template<typename T0, typename T1, typename T2, typename T3>
- void fire(T0&& type, T1&& p1, T2&& p2, T3&& p3) noexcept {
- Lock l(listenerCS);
- tmp = listeners;
- for(auto i: tmp) {
- i->on(forward<T0>(type), forward<T1>(p1), forward<T2>(p2), forward<T3>(p3));
- }
- }
-
- template<typename T0, typename T1, typename T2, typename T3, typename T4>
- void fire(T0&& type, T1&& p1, T2&& p2, T3&& p3, T4&& p4) noexcept {
- Lock l(listenerCS);
- tmp = listeners;
- for(auto i: tmp) {
- i->on(forward<T0>(type), forward<T1>(p1), forward<T2>(p2), forward<T3>(p3), forward<T4>(p4));
- }
- }
-
- template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
- void fire(T0&& type, T1&& p1, T2&& p2, T3&& p3, T4&& p4, T5&& p5) noexcept {
- Lock l(listenerCS);
- tmp = listeners;
- for(auto i: tmp) {
- i->on(forward<T0>(type), forward<T1>(p1), forward<T2>(p2), forward<T3>(p3), forward<T4>(p4), forward<T5>(p5));
- }
- }
-
- template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
- void fire(T0&& type, T1&& p1, T2&& p2, T3&& p3, T4&& p4, T5&& p5, T6&& p6) noexcept {
- Lock l(listenerCS);
- tmp = listeners;
- for(auto i: tmp) {
- i->on(forward<T0>(type), forward<T1>(p1), forward<T2>(p2), forward<T3>(p3), forward<T4>(p4), forward<T5>(p5), forward<T6>(p6));
+ template<typename... T>
+ void fire(T&&... type) noexcept {
+ Lock l(listenerCS);
+ tmp = listeners;
+ for(auto i: tmp) {
+ i->on(forward<T>(type)...);
}
}