是否可以将 C++11 模板别名用于方法回调?
我有一个模板化方法,它将方法回调作为其输入参数之一,例如:
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 参考网站上,我找不到一个例子来说明它是如何工作的。