From: Manuel Nickschas Date: Wed, 6 Mar 2013 23:52:06 +0000 (+0100) Subject: Fix virtual overloads X-Git-Tag: 0.9-rc1~10 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=89ae7093aaf405d24f3d7ac0825290f2a065da99 Fix virtual overloads So I learned something today: the 'using' keyword can also be used to import function names from the enclosing namespace. This not only solves the spammy virtual overload warnings that the new-fangled protocol stuff introduced unwittingly, but also removes the need to redefine RemotePeer::handle<>() as a forward to Peer::handle<>(). Also, someone please kick the C++ inventors for making method lookup not follow the Koenig rules (contrary to most other lookups...). --- diff --git a/src/common/remotepeer.h b/src/common/remotepeer.h index 5751dfb8..6c3e35f4 100644 --- a/src/common/remotepeer.h +++ b/src/common/remotepeer.h @@ -68,8 +68,8 @@ signals: protected: SignalProxy *signalProxy() const; - template - void handle(const T &protoMessage); + using Peer::handle; + using Peer::dispatch; // These protocol messages get handled internally and won't reach SignalProxy void handle(const Protocol::HeartBeat &heartBeat); @@ -89,12 +89,4 @@ private: int _lag; }; - -template inline -void RemotePeer::handle(const T &protoMessage) -{ - Peer::handle(protoMessage); -} - - #endif