C++ 如何使用别名声明为函数typedef创建模板?
我只是想转换我当前的typedef:C++ 如何使用别名声明为函数typedef创建模板?,c++,typedef,using-declaration,C++,Typedef,Using Declaration,我只是想转换我当前的typedef: typedef void (Foo::*CallbackName)(int arg); 转换为一个函数别名,如下所示: template <class T> using T_CallbackName = void(T::*CallbackName)(int arg); 模板 使用T_CallbackName=void(T::*CallbackName)(int-arg); 这是正确的吗?别名声明看起来很简单,但函数typedef有奇怪的语
typedef void (Foo::*CallbackName)(int arg);
转换为一个函数别名,如下所示:
template <class T>
using T_CallbackName = void(T::*CallbackName)(int arg);
模板
使用T_CallbackName=void(T::*CallbackName)(int-arg);
这是正确的吗?别名声明看起来很简单,但函数typedef有奇怪的语法,我不清楚如何对它们进行模板化。简单地说:
template <class C>
using T_CallbackName = void (C::*)(int);
也可以使用“自动”定义函数指针: const auto T_CallbackName=Foo::CallbackName 或函数引用 auto&T\u CallbackName=Foo::CallbackName 请注意,即使您更改了回调参数的数量,这仍然有效
using CallbackName = void (Foo::*)(int);