问题描述
我需要将一个指向数据成员的指针、它的类型和它所属的类传递给模板结构。以下工作:
template<typename T,typename Cls,T Cls::*member> struct Member {};
struct Struct { int x; };
Member<int,Struct,&Struct::x>
但它需要明确提及类型(T:int)和类(Cls:Struct)。那应该是不必要的。编译器应该能够自己找出这两种类型。
事实上,如果我将指向数据成员的指针传递给函数,它可以推断它们:
template<typename T,typename Cls> void member( T Cls::*member ) {}
struct Struct { int x; };
member( &Struct::x );
是否可以将指向数据成员的指针作为非类型模板参数传递,同时让编译器确定类型和类?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)