【发布时间】:2013-06-15 19:49:52
【问题描述】:
是否可以为方法回调使用 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 参考网站上找不到这样的示例。
【问题讨论】:
标签: c++ templates c++11 alias typedef