JQ.*_*JQ. 2 c++ templates member-functions
如果有class T{ void M() };,我希望有一个模板类可以T::M用作模板参数.说这样的话:
T t;
TUser<T::M> user(t);
Run Code Online (Sandbox Code Playgroud)
可能吗?
是的,可能的:
template< typename T, void (T::*M)() >
struct something
{
void somewhere( T* obj )
{
(obj->*M)();
}
};
Run Code Online (Sandbox Code Playgroud)
它的使用方式如下:
T t;
something< T, &T::M > user;
user.somewhere( &t );
Run Code Online (Sandbox Code Playgroud)