次のパラメーターを持つテンプレート クラスがあります。
template <class TObj, class TMsg, void (TObj::*TMethod)( TMsg*, Link*)>
class Slot : ...
このクラスをインスタンス化するときは、次のように記述する必要があります
Slot<MyObject, MyMessage, MyObject::myMethod>
これは、クラス MyObject に myMethod という名前のメソッドがあり、MyMessage* が最初の引数であることを意味します。
少なくとも MyObject クラスを 1 回だけ指定できるように、Slot クラスのインスタンス化を単純化する方法はありますか?
メソッドの後に TMsg 型を指定できると、より直感的になります。次のようなもので問題ありません。
Slot<MyObject::myMethod, MyMessage>