テンプレート内のメンバーへのポインター型を使用していますが、現在、次のようなことが起こっています。
template <typename Base, typename Type, Type Base::* Var>
struct Member
{
//Stuff goes here.
};
ただし、BaseとTypeはVarの型に含まれているため、Base、Type、Varの順に定義する必要があるのは少し冗長に思えます。
これを行う方法はありますか?たとえば、Member構造体を使用/呼び出すときに、単一のメンバーへのポインター引数のみを使用する必要がありますか?理論的には、次のようなものです。
template <typename Base, typename Type, Type Base::* Var>
struct Member<Var>
{
//stuff goes here
};
struct S
{
int memberVal;
};
int main()
{
Member<&S::memberVal> example;
};
助けてくれてありがとう!