メソッドのコールバックに C++11 テンプレート エイリアスを使用することは可能ですか?
入力パラメーターの 1 つとしてメソッド コールバックを受け取るテンプレート化されたメソッドがあります。
class Foo {
public:
template <typename OtherClass, typename T>
void Bar(void (OtherClass::*callback)(T *));
};
実装のいくつかの場所で同じ型を使用するため、型を使用するように Bar() プロトタイプを書き直せるようにしたいと考えています。以下の新しい C++11 エイリアスを使用してみましたが、うまくいきませんでした。
class Foo {
public:
// This does not work
template <typename OtherClass, typename T>
using Callback = void (OtherClass::*)(T *object);
void Bar(Callback callback);
};
私は何が欠けていますか?私のお気に入りの C++11 リファレンス Web サイトのいくつかで、これがどのように機能するかの例を見つけることができませんでした。